
Cheatsheets para desenvolvedores com experiência em React que estão iniciando com TypeScript
Web docs | 中文翻译 | Español | Contribute! | Ask!
👋 Este repositório é mantido por @giseladifini e @swyx. Estamos muito felizes que você quer experimentar React com Typescript! Se você perceber algo de errado ou faltando, por favor abra uma issue! 👍
- Cheatsheet Básico (
/README.md
) é focado em ajudar desenvolvedores React a começar a usar TS com React apps- Foco nas melhores práticas com exemplos para copiar e colar.
- Explica alguns tipos básicos de uso de TS e configuração ao longo do caminho.
- Responde às perguntas mais frequentes.
- Não cobre a lógica de tipo genérico em detalhes. Em vez disso, preferimos ensinar técnicas de solução de problemas simples para iniciantes.
- O objetivo é se familiarizar com TS sem precisar aprender muito sobre TS.
- Cheatsheet Avançado (
/AVANÇADO.md
) ajuda a mostrar e explicar o uso avançado de tipos genéricos para pessoas que escrevem utilitários/funções/props de renderização/componentes de ordem superior (HOCs) reutilizáveis e bibliotecas TS+React.- Possui dicas e truques diversos para usuários profissionais.
- Conselhos para contribuir com DefinitelyTyped.
- O Objetivo é tirar total vantagem sobre o TypeScript.
- Cheatsheet de migração (
/MIGRANDO.md
) ajuda a reunir conselhos para a migração incremental de grandes bases de código de JS ou Flow, de pessoas que já fizeram isso.- Nós não tentamos convencer as pessoas a mudar, apenas ajudar as pessoas que já decidiram isso.
⚠️ Esta é uma nova cheatsheet, toda ajuda é bem-vinda.
- Cheatsheet de HOCs (
/HOC.md
) especificamente ensina as pessoas a escrever HOCs com a ajuda de exemplos.- Familiaridade com Genéricos é necessário.
⚠️ Esta é uma nova cheatsheet, toda a assistência é bem-vinda.
Expandir Tabela de Conteúdo
- Seção 2: Primeiros Passos
- Componente de Função
- Hooks
- useState
- useReducer
- useEffect
- useRef
- useImperativeHandle
- Hooks Customizados
- Componentes de Classe
- Talvez você não precise do
defaultProps
- "Tipando"
defaultProps
- Consumindo Props de um Componente com defaultProps
- Discussões e Conhecimentos Diversos
- Tipos ou Interfaces?
- Exemplos básicos do tipo Prop
- Exemplos úteis do tipo React Prop
- getDerivedStateFromProps
- Formulários e Eventos
- Context
- Exemplo Básico
- Exemplo Extendido
- forwardRef/createRef
- Portais
- Limites de erros
- Concurrent React/React Suspense
- Manual de resolução de problemas: Tipos
- Tipos de União e Tipos de Proteção
- Tipos Opcionais
- Tipos de Enum
- Tipos de Asserção
- Simulando Tipos Nominais
- Tipos de Interseção
- Tipos de União
- Sobrecarregando Tipos de Função
- Usando Tipos Inferidos
- Usando Tipos Parciais
- Os Tipos de que preciso não foram exportados!
- Os Tipos de que preciso não existem!
- Manual de resolução de problemas: Operadores
- Manual de resolução de problemas: Utilitários
- Manual de resolução de problemas: tsconfig.json
- Manual de resolução de problemas: Erros en tipos oficiais
- Bases de código de React + TypeScript recomendadas para aprender
- Ferramentas e integração em editores
- Linting
- Outros recursos sobre React + TypeScript
- Discussões recomendadas sobre React + TypeScript
- Hora de realmente aprender TypeScript
- Aplicação de Exemplo
- Minha pergunta não foi respondida aqui!
- Uma boa compreensão de React.
- Familiaridade com os tipos básicos de TypeScript ( O guia de 2ality é de grande ajuda. Se você é completamente novato em TypeScript, dê uma olhada no tutorial de chibicode ).
- Ter lido a seção de TypeScript na documentação oficial do React.
- Ter lido a seção do React do novo playground de TypeScript ( Opcional: também acompanhar os mais de 40 exemplos na seção de exemplos do playground ).
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>
.
- Create React App v2.1+ com Typescript:
npx create-react-app my-app --template typescript
- Costumávamos recomendar
create-react-app-typescript
mas agora o seu uso é desencorajado. Consulte as instruções de migração.
- O guia de Basarat para uma configuração manual de React + TypeScript + Webpack + Babel.
- 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 ). - Existem também muitos boilerplates de React + Typescript. Por favor consulte nossa lista de recursos.
import * as React from 'react';
import * as ReactDOM from 'react-dom';
Na versões de TypeScript superiores á 2.7, você pode rodar TypeScript com --allowSyntheticDefaultImports
(ou adicionar "allowSyntheticDefaultImports": true
na tsconfig) para importar como se faz normalmente em jsx:
import React from 'react';
import ReactDOM from 'react-dom';
Explicação
Por que usar allowSyntheticDefaultImports
ao invés de esModuleInterop
? Daniel Rosenwasser comentou que é melhor para webpack/parcel. Para consultar mais argumentos dessa discussão wmonk/create-react-app-typescript#214
Por favor, faça um PR ou abra uma issue com tuas sugestões.