
React
Usar componentes funcionales
Siempre usa componentes funcionales TSX. Do not use defaultimport with const, because it’s harder to read and harder to import with code completion.
Props
Crea el tipo de las props y llámalo(NombreDelComponente)Props si no hay necesidad de exportarlo.
Usa la desestructuración de props.
Evita usar React.FC o React.FunctionComponent para definir tipos de props
Sin Propagación de una sola variable de Props en Elementos JSX
Evita usar la propagación de una sola variable de props en elementos JSX, como{...props}. Esta práctica a menudo resulta en un código que es menos legible y más difícil de mantener porque no está claro qué props está recibiendo el componente.
- A simple vista, es más claro qué props se está pasando, lo que hace que sea más fácil de entender y mantener.
- Ayuda a prevenir el acoplamiento estricto entre componentes mediante sus props.
- Las herramientas de linting facilitan la identificación de props mal escritas o sin uso al listar props explícitamente.
JavaScript
Usar el operador de fusión nula ??
Usar encadenamiento opcional ?.
TypeScript
Usar type en lugar de interface
Siempre usa type en lugar de interface, porque casi siempre se superponen y type es más flexible.
Usar literales de cadena en lugar de enums
Los literales de cadena son la manera preferida para manejar valores tipo enum en TypeScript. Son más fáciles de extender con Pick y Omit, y ofrecen una mejor experiencia de desarrollo, especialmente con la autocompletación de código. Puedes ver por qué TypeScript recomienda evitar enums aquí.GraphQL y bibliotecas internas
Deberías usar enums que genera el codegen de GraphQL. También es mejor usar un enum al usar una biblioteca interna, para que la biblioteca interna no tenga que exponer un tipo de literal de cadena que no está relacionado con la API interna. Ejemplo:Estilo
Usar StyledComponents
Estiliza los componentes con styled-components.Tematización
Utilizar el tema para la mayor parte de la estilización de los componentes es el enfoque preferido.Unidades de medida
Evita usar valorespx o rem directamente dentro de los componentes estilizados. Los valores necesarios suelen estar ya definidos en el tema, por lo que se recomienda usar el tema para estos fines.
Colores
Abstente de introducir nuevos colores; en su lugar, utiliza la paleta existente del tema. Si hay una situación en la que la paleta no se ajusta, deja un comentario para que el equipo pueda corregirlo.Aplicando No-Type Imports
Evita las importaciones de tipo. Para reforzar este estándar, una regla de ESLint verifica y reporta cualquier importación de tipo. Esto ayuda a mantener la consistencia y la legibilidad en el código TypeScript.Por qué No-Type Imports
- Consistencia: Al evitar las importaciones de tipo y usar un solo enfoque tanto para las importaciones de tipo como de valor, la base de código se mantiene consistente en su estilo de importación de módulos.
- Legibilidad: Las no-importaciones de tipo mejoran la legibilidad del código al dejar claro cuándo se están importando valores o tipos. Esto reduce la ambigüedad y hace más fácil entender el propósito de los símbolos importados.
- Mantenibilidad: Mejora la mantenibilidad de la base de código porque los desarrolladores pueden identificar y localizar importaciones solo de tipo al revisar o modificar el código.
Regla de ESLint
An ESLint rule,@typescript-eslint/consistent-type-imports, enforces the no-type import standard. Esta regla generará errores o advertencias sobre cualquier violación de importación de tipo.
Por favor, ten en cuenta que esta regla específicamente aborda extraños casos límite donde ocurren importaciones de tipo no intencionadas. TypeScript en sí mismo desaconseja esta práctica, como se menciona en las notas de lanzamiento de TypeScript 3.8. En la mayoría de situaciones, no deberías necesitar usar importaciones solo de tipo.
Para asegurarte de que tu código cumpla con esta regla, asegúrate de ejecutar ESLint como parte de tu flujo de trabajo de desarrollo.