Skip to content

Commit 33783d9

Browse files
authored
Merge pull request #3 from vinicius77/translate-docs
Translate docs
2 parents 5271f36 + 9cf25c6 commit 33783d9

File tree

1 file changed

+159
-1
lines changed

1 file changed

+159
-1
lines changed

README.md

+159-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
<div align="center">
2727

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!
2929
Se você perceber algo de errado ou faltando, por favor abra uma [issue](https://github.com/typescript-cheatsheets/react-pt/issues/new)! :+1:
3030

3131
</div>
@@ -52,3 +52,161 @@ Se você perceber algo de errado ou faltando, por favor abra uma [issue](https:/
5252
- ⚠️ Esta é uma nova cheatsheet, toda a assistência é bem-vinda.
5353

5454
---
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)
88+
- [getDerivedStateFromProps](#getDerivedStateFromProps)
89+
- [Formulários e Eventos](#forms-and-events)
90+
- [Context](#context)
91+
- [Exemplo Básico](#basic-example)
92+
- [Exemplo Extendido](#extended-example)
93+
- [forwardRef/createRef](#forwardrefcreateref)
94+
- [Portais](#portals)
95+
- [Limites de erros](#error-boundaries)
96+
- [Opção 1: Usando react-error-boundary](#option-1-using-react-error-boundary)
97+
- [Opção 2: Criando um componente "error boundary" personalizado](#options-2-writing-your-custom-error-boundary-component)
98+
- [Concurrent React/React Suspense](#concurrent-reactreact-suspense)
99+
<!--START-SECTION:types-toc-->
100+
- [Manual de resolução de problemas: Tipos](#troubleshooting-handbook-types)
101+
- [Tipos de União e Tipos de Proteção](#union-types-and-type-guarding)
102+
- [Tipos Opcionais](#optional-types)
103+
- [Tipos de Enum](#enum-types)
104+
- [Tipos de Asserção](#type-assertion)
105+
- [Simulando Tipos Nominais](#simulating-nominal-types)
106+
- [Tipos de Interseção](#intersection-types)
107+
- [Tipos de União](#union-types)
108+
- [Sobrecarregando Tipos de Função](#overloading-function-types)
109+
- [Usando Tipos Inferidos](#using-inferred-types)
110+
- [Usando Tipos Parciais](#using-partial-types)
111+
- [Os Tipos de que preciso não foram exportados!](#the-types-i-need-werent-exported)
112+
- [Os Tipos de que preciso não existem!](#the-types-i-need-dont-exist)
113+
- [Exagerando com `any` em tudo](#slapping-any-on-everything)
114+
- [Autogerando tipos](#autogenerate-types)
115+
- [Tipando Hooks Exportados](#typing-exported-hooks)
116+
- [Tipando Componentes Exportados](#typing-exported-components)
117+
<!--END-SECTION:types-toc-->
118+
- [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.
159+
- [Meteor](https://guide.meteor.com/build-tool.html#typescript): `meteor create --typescript name-of-my-new-typescript-app`
160+
- [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).
171+
- [Snowpack](<https://www.snowpack.dev/#create-snowpack-app-(csa)>): `npx create-snowpack-app my-app --template app-template-react-typescript`
172+
- [Docusaurus v2](https://v2.docusaurus.io/docs/installation) com [suporte a TypeScript](https://v2.docusaurus.io/docs/typescript-support)
173+
- [Parcel](https://v2.parceljs.org/languages/typescript/)
174+
- [JP Morgan's `modular`](https://github.com/jpmorganchase/modular): CRA + TS + Yarn Workspaces toolkit. `yarn create modular-react-app <project-name>`
175+
176+
Manual de configuração:
177+
178+
- [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 * as React from 'react';
188+
import * as ReactDOM from '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+
import React from 'react';
195+
import ReactDOM from '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)!
205+
206+
</details>
207+
208+
<!--END-SECTION:setup-->
209+
210+
# Seção 2: Primeiros Passos
211+
212+
## Componente de Função

0 commit comments

Comments
 (0)