
React
Use componentes funcionais
Use sempre componentes funcionais TSX. Não useimport padrão com const, pois é mais difícil de ler e mais difícil de importar com autocomplete.
Propriedades
Crie o tipo das propriedades e chame-o de(NomeDoComponente)Props se não houver necessidade de exportá-lo.
Use destructuring de props.
Evite usar React.FC ou React.FunctionComponent para definir tipos de props
Proibição de Prop Spreading de Variável Única em Elementos JSX
Evite usar o espalhamento de props de variável única em elementos JSX, como{...props}. Essa prática muitas vezes resulta em código menos legível e mais difícil de manter, pois não está claro quais props o componente está recebendo.
- À primeira vista, é mais claro quais props o código passa, tornando mais fácil de entender e manter.
- Ajuda a evitar o acoplamento forte entre componentes via suas props.
- Ferramentas de linting tornam mais fácil identificar props mal digitadas ou não utilizadas quando você lista props explicitamente.
JavaScript
Use o operador de coalescência nula ??
Use encadeamento opcional ?.
TypeScript
Use type em vez de interface
Sempre use type em vez de interface, porque elas quase sempre se sobrepõem e type é mais flexível.
Use literais de string em vez de enums
Literals de string são o caminho a seguir para lidar com valores tipo enum no TypeScript. Eles são mais fáceis de estender com Pick e Omit, e oferecem uma melhor experiência de desenvolvedor, especialmente com autocomplete. Você pode ver porque o TypeScript recomenda evitar enums aqui.GraphQL e bibliotecas internas
Você deve usar enums que o GraphQL codegen gera. É melhor usar um enum ao usar uma biblioteca interna, para que a biblioteca interna não precise expor um tipo literal de string que não está relacionado à API interna. Exemplo:Estilização
Use StyledComponents
Estilize os componentes com styled-components.Tematização
Utilizar o tema para a maioria da estilização dos componentes é a abordagem preferida.Unidades de medida
Evite usar valorespx ou rem diretamente dentro dos componentes estilizados. Os valores necessários geralmente já estão definidos no tema, por isso é recomendável fazer uso do tema para esses fins.
Cores
Evite introduzir novas cores; em vez disso, use a paleta existente do tema. Se houver uma situação em que a paleta não se alinhe, por favor, deixe um comentário para que a equipe possa corrigi-la.Impor Importações Sem Tipo
Evite importações de tipo. Para impor esse padrão, uma regra do ESLint verifica e relata qualquer violação de importação de tipos. Isso ajuda a manter a consistência e a legibilidade no código TypeScript.Por Que Não Usar Importações de Tipo
- Consistência: Ao evitar importações de tipo e usar uma única abordagem para importações de tipo e valor, a base de código permanece consistente em seu estilo de importação de módulo.
- Legibilidade: Importações sem tipo melhoram a legibilidade do código, tornando claro quando você está importando valores ou tipos. Isso reduz a ambiguidade e facilita a compreensão do propósito dos símbolos importados.
- Manutenção: Melhora a manutenibilidade da base de código porque os desenvolvedores podem identificar e localizar importações somente de tipo ao revisar ou modificar o código.
Regra ESLint
Uma regra do ESLint,@typescript-eslint/consistent-type-imports, aplica o padrão de importação sem tipo. Esta regra gerará erros ou avisos para qualquer violação de importação de tipo.
Observe que esta regra trata especificamente de casos isolados onde importações de tipos não intencionais ocorrem. O próprio TypeScript desencoraja essa prática, conforme mencionado nas notas de lançamento do TypeScript 3.8. Na maioria das situações, não é necessário usar importações somente de tipo.
Para garantir que seu código esteja em conformidade com essa regra, certifique-se de executar o ESLint como parte do seu fluxo de trabalho de desenvolvimento.