TypeScript no convierte una ingeniería débil en una ingeniería sólida.
Los tipos estrictos ayudan, pero cualquier límite deficiente y reglas de dominio no probadas siguen funcionando; la creatividad supera a la sintaxis.
La seguridad de tipos no es lo mismo que la calidad del software
TypeScript previene una categoría importante de errores. No evita un diseño deficiente, modelos de dominio poco claros ni un comportamiento en tiempo de ejecución descuidado.
function transferMoney(
from: Account,
to: Account,
amount: number
) {
from.balance -= amount;
to.balance += amount;
}
const user: any = fetchUser();
user.address.street.foo.bar();
interface User {}
interface UserResponse {}interface UserData {}interface UserDTO {}interface UserPayload {}interface UserState {}
TypeScript no comprende la lógica de negocio
Los compiladores no pueden saber si una regla de acumulación de descuentos es justa. Los tipos registran las estructuras; los seres humanos siguen necesitando pruebas e invariantes.
El tipo más peligroso es any
any desactiva la ayuda que ofrece el compilador. Prefiera unknown junto con mecanismos de restricción, o uniones precisas.
Los tipos fuertes no pueden salvar una arquitectura débil
La organización en capas, los límites y las uniones entre módulos son más importantes que decorar una estructura caótica con interfaces.
Los tipos describen la realidad
Los modelos deben coincidir con el dominio. Los tipos que mienten al afirmar que un valor no es nulo cuando las APIs devuelven nulo generan una falsa sensación de confianza.
Los malos hábitos se propagan más rápido en TypeScript
Los DTOs copiados y pegados, los tipos “dios” excesivamente grandes y el uso excesivo de afirmaciones se difunden rápidamente bajo la apariencia de ser “tipados”.
Los mejores desarrolladores en TypeScript ya eran desarrolladores de JavaScript cuidadosos
La disciplina precede a la sintaxis. TypeScript amplifica los hábitos, tanto los buenos como los malos.
Utilice el compilador como socio
Habilite la estrictitud, resuelva las causas raíz y deje que los errores guíen las refactorizaciones en lugar de silenciarlos.
La verdadera mejora no es TypeScript
La mejora radica en módulos más claros, reglas de dominio probadas y tipos honestos. TypeScript es una herramienta para ese trabajo, no un sustituto.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Asocie los DTOs en los límites con mapeadores: no deje que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos están “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos están “tipados”.
Habilite noImplicitAny y strictNullChecks antes de debatir sobre guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTO en los puntos de interconexión con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos están “tipados”.
Active noImplicitAny y strictNullChecks antes de discutir las guías de estilo; esas dos opciones detectan más errores reales que las convenciones de nomenclatura.
Combine los DTOs en los límites con mapeadores: no permita que las estructuras de persistencia lleguen a los componentes de interfaz solo porque ambos son “tipados”.
Lecturas relacionadas
- Seis técnicas de TypeScript que convierten los tipos en una verdadera prevención de errores — Aprenda cómo satisfy, las uniones etiquetadas, never checks, unknown, los tipos derivados y los IDs con marca hacen que TypeScript detecte errores reales en tiempo de compilación en lugar de en producción.