You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+159-1
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@
25
25
26
26
<divalign="center">
27
27
28
-
:wave:Este repositório é mantido por [@giseladifini](https://twitter.com/GiselaDifini) e [@swyx](https://twitter.com/swyx). Estamos muito felizes que você quer experimentar React com Typescript!
28
+
:wave: Este repositório é mantido por [@giseladifini](https://twitter.com/GiselaDifini) e [@swyx](https://twitter.com/swyx). Estamos muito felizes que você quer experimentar React com Typescript!
29
29
Se você perceber algo de errado ou faltando, por favor abra uma [issue](https://github.com/typescript-cheatsheets/react-pt/issues/new)! :+1:
30
30
31
31
</div>
@@ -52,3 +52,161 @@ Se você perceber algo de errado ou faltando, por favor abra uma [issue](https:/
52
52
- ⚠️ Esta é uma nova cheatsheet, toda a assistência é bem-vinda.
53
53
54
54
---
55
+
56
+
### Tabela de conteúdos da Cheatsheet básica
57
+
58
+
<details>
59
+
60
+
<summary><b>Expandir Tabela de Conteúdo</b></summary>
61
+
62
+
<!--START-SECTION:setup-toc-->
63
+
64
+
-[Seção 1: Configuração](#seção-1-configuração)
65
+
-[Pré-requisitos](#pré-requisitos)
66
+
-[Ferramentas iniciais de React + TypeScript](#ferramentas-iniciais-de-react--typeScript)
67
+
-[Importar React](#importar-react)
68
+
<!--END-SECTION:setup-toc-->
69
+
-[Seção 2: Primeiros Passos](#seção-2-primeiros-passos)
70
+
-[Componente de Função](#componente-de-função)
71
+
-[Hooks](#hooks)
72
+
-[useState](#usestate)
73
+
-[useReducer](#usereducer)
74
+
-[useEffect](#useeffect)
75
+
-[useRef](#useref)
76
+
-[useImperativeHandle](#useimperativehandle)
77
+
-[Hooks Customizados](#custom-hooks)
78
+
-[Componentes de Classe](#class-components)
79
+
-[Talvez você não precise do `defaultProps`](#you-may-not-need-defaultprops)
80
+
-["Tipando" `defaultProps`](#typing-defaultprops)
81
+
-[Consumindo Props de um Componente com defaultProps](#consuming-props-of-a-component-with-defaultprops)
82
+
-[Declaração do Problema](#problem-statement)
83
+
-[Solução](#solution)
84
+
-[Discussões e Conhecimentos Diversos](#misc-discussions-and-knowledge)
85
+
-[Tipos ou Interfaces?](#types-or-interfaces)
86
+
-[Exemplos básicos do tipo Prop](#basic-prop-types-examples)
87
+
-[Exemplos úteis do tipo React Prop](#useful-react-prop-type-examples)
-[Manual de resolução de problemas: Operadores](#troubleshooting-handbook-operators)
119
+
-[Manual de resolução de problemas: Utilitários](#troubleshooting-handbook-utilities)
120
+
-[Manual de resolução de problemas: tsconfig.json](#troubleshooting-handbook-tsconfigjson)
121
+
-[Manual de resolução de problemas: Erros en tipos oficiais](#troubleshooting-handbook-bugs-in-official-typings)
122
+
-[Bases de código de React + TypeScript recomendadas para aprender](#recommended-react--typescript-codebases-to-learn-from)
123
+
-[Ferramentas e integração em editores](#editor-tooling-and-integration)
124
+
-[Linting](#linting)
125
+
-[Outros recursos sobre React + TypeScript](#other-react--typescript-resources)
126
+
-[Discussões recomendadas sobre React + TypeScript](#recommended-react--typescript-talks)
127
+
-[Hora de realmente aprender TypeScript](#time-to-really-learn-typescript)
128
+
-[Aplicação de Exemplo](#example-app)
129
+
-[Minha pergunta não foi respondida aqui!](#my-question-isnt-answered-here)
130
+
-[Contribuidores](#contributors)
131
+
132
+
</details>
133
+
134
+
<!--START-SECTION:setup-->
135
+
136
+
# Seção 1: Configuração
137
+
138
+
## Pré-requisitos
139
+
140
+
1. Uma boa compreensão de [React](https://reactjs.org).
141
+
2. Familiaridade com os tipos básicos de [TypeScript](https://www.typescriptlang.org/docs/handbook/basic-types.html) ( [O guia de 2ality](http://2ality.com/2018/04/type-notation-typescript.html) é de grande ajuda. Se você é completamente novato em TypeScript, dê uma olhada no [tutorial de chibicode](https://ts.chibicode.com/todo/) ).
142
+
3. Ter lido [a seção de TypeScript na documentação oficial do React](https://reactjs.org/docs/static-type-checking.html#typescript).
143
+
4. Ter lido [a seção do React do novo playground de TypeScript](http://www.typescriptlang.org/play/index.html?jsx=2&esModuleInterop=true&e=181#example/typescript-with-react) ( Opcional: também acompanhar os mais de 40 exemplos na seção de exemplos do [playground](http://www.typescriptlang.org/play/index.html) ).
144
+
145
+
Este guia sempre assumirá que você está usando a última versão de Typescript. Notas para versões mais antigas usarão a etiqueta `<details>`.
146
+
147
+
## Ferramentas iniciais de React + TypeScript
148
+
149
+
Configurações na nuvem:
150
+
151
+
-[Playground do TypeScript com React](https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwCwAUKJLHAN5wCuqWAyjMhhYANFx4BRAgSz44AXzhES5Snhi1GjLAA8W8XBAB2qeAGEInQ0KjjtycABsscALxwAFAEpXAPnaM4OANjeABtA0sYUR4Yc0iAXVcxPgEhdwAGT3oGAOTJaXx3L19-BkDAgBMIXE4QLCsAOhhgGCckgAMATQsgh2BcAGssCrgAEjYIqwVmutR27MC5LM0yuEoYTihDD1zAgB4K4AA3H13yvbAfbs5e-qGRiYspuBmsVD2Aekuz-YAjThgMCMcCMpj6gxcbGKLj8MTiVnck3gAGo4ABGTxyU6rcrlMF3OB1H5wT7-QFGbG4z6HE65ZYMOSMIA) apenas se você estiver depurando tipos (e relatando problemas), não para executar código.
152
+
-[CodeSandbox](http://ts.react.new) - IDE na nuvem, inicializa super rápido.
153
+
-[Stackblitz](https://stackblitz.com/edit/react-typescript-base) - IDE na nuvem, inicializa super rápido.
154
+
155
+
Configurações de desenvolvimento local:
156
+
157
+
-[Next.js](https://nextjs.org/docs/basic-features/typescript): `npx create-next-app -e with-typescript` irá criar no seu diretório atual.
158
+
-[Create React App](https://facebook.github.io/create-react-app/docs/adding-typescript): `npx create-react-app name-of-app --template typescript` irá criar em um novo diretório.
-[Ignite](https://github.com/infinitered/ignite#use-ignite-andross-infinite-red-andross-boilerplate) para React Native: `ignite new myapp`
161
+
-[TSDX](https://tsdx.io/): `npx tsdx create mylib` para Creating React+TS _libraries_
162
+
163
+
<details>
164
+
<summary>
165
+
Outras ferramentas
166
+
</summary>
167
+
168
+
Ferramentas menos maduras mas que vale a pena conferir:
169
+
170
+
-[Vite](https://twitter.com/swyx/status/1282727239230996480?lang=en): `npm init vite-app my-react-project --template react-ts` (nota - ainda não está na versão v1.0, mas é muito rápida).
-[O guia de Basarat](https://github.com/basarat/typescript-react/tree/master/01%20bootstrap) para uma **configuração manual** de React + TypeScript + Webpack + Babel.
179
+
- Em particular, certifique-se de ter instalado `@types/react` e `@types/react-dom` .( [Leia mais sobre o projeto DefinitelyTyped caso você não esteja familiarizado](https://definitelytyped.org/) ).
180
+
- Existem também muitos _boilerplates_ de React + Typescript. Por favor consulte [nossa lista de outros recursos](https://react-typescript-cheatsheet.netlify.app/docs/basic/recommended/resources/).
181
+
182
+
</details>
183
+
184
+
## Import React
185
+
186
+
```tsx
187
+
import*asReactfrom'react';
188
+
import*asReactDOMfrom'react-dom';
189
+
```
190
+
191
+
Este é o [caminho mais seguro no futuro](https://www.reddit.com/r/reactjs/comments/iyehol/import_react_from_react_will_go_away_in_distant/) para importar React. Se você definir `--allowSyntheticDefaultImports` (ou adicionar` "allowSyntheticDefaultImports": true`) em seu `tsconfig.json`, você poderá importar como se faz normalmente em jsx:
192
+
193
+
```tsx
194
+
importReactfrom'react';
195
+
importReactDOMfrom'react-dom';
196
+
```
197
+
198
+
<details>
199
+
200
+
<summary>Explicação</summary>
201
+
202
+
Por que usar `allowSyntheticDefaultImports` ao invés de `esModuleInterop`? [Daniel Rosenwasser](https://twitter.com/drosenwasser/status/1003097042653073408) comentou que é melhor para webpack/parcel. Para consultar mais argumentos dessa discussão <https://github.com/wmonk/create-react-app-typescript/issues/214>
203
+
204
+
Você também deveria verificar [a nova documentação do TypeScript para descrições oficiais entre cada _flag_ do compilador](https://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports)!
0 commit comments