Inicio / Artículos / TypeScript no convierte una ingeniería débil en una ingeniería sólida.

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.

804 palabras

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

  • Diez patrones de TypeScript que convierten errores en el tiempo de ejecución en errores de compilación — Aprenda diez técnicas de TypeScript, desde uniones discriminadas y satisfies hasta tipos branded e infer, que permiten al compilador rechazar estados inválidos antes de que su código sea distribuido.
  • Por qué las equipos serios de JavaScript adoptan TypeScript — Los tipos como contratos, refactorizaciones más seguras y beneficios en las herramientas que se acumulan con el tiempo.