← Back to home

Typescript: Definición

Cover Image for Typescript: Definición
4 min readLevel:

¿Qué es TypeScript?

En el desarrollo web, TypeScript es uno de los lenguajes de programación más populares. Es similar a JavaScript pero con algunas características adicionales. De hecho, TypeScript no puede ser ejecutado ni por el navegador ni por el entorno de ejecución de Node.js mientras que JavaScript sí.

Typescript es un superconjunto de JavaScript lo que significa que incluye todas las funcionalidades de JavaScript y además construcciones de lenguaje para funciones adicionales.

Diagrama de 'Typescript es un superconjunto de JavaScript'

TypeScript es un lenguaje de programación con un sistema de tipado estricto, lo que significa que se preocupa por la estructura (shape) de los objetos y funciones. Esto ayuda a detectar errores de tipo de manera temprana en el proceso de desarrollo, lo que permite una mejor mantenibilidad y escalabilidad del código. Además, TypeScript es compatible con JavaScript, por lo que los desarrolladores podemos seguir utilizando las bibliotecas (libraries) y herramientas existentes de JavaScript mientras nos beneficiamos de las características adicionales de TypeScript.

La forma de un objeto describe qué propiedades y métodos tiene. Si tomamos el siguiente objeto:

const person = {
    firstName: 'Eric',
    lastName: "Alvarez",
    age: 29
}

En el ejemplo anterior, person es un objeto que sigue la siguiente forma:

  • firstName es una cadena de caracteres (string)
  • lastName es un cadena de caracteres (string)
  • age es un número (number)
La forma de `person`

Si queremos definir la forma como un tipo personalizado (custom type), sería algo así:

type Person = {
    firstName: string,
    lastName: string,
    age: number
}

Por lo tanto, podemos definir un objeto con un tipo explícito así:

const person: Person = {
    firstName: 'Eric',
    lastName: "Alvarez",
    age: 29
}

Puedes encontrar más información en el TypeScript handbook.

¿Por qué usarías TypeScript en lugar de JavaScript?

Esencialmente, TypeScript proporciona un entorno más enquirecido para detectar errores comunes durante el desarrollo. La adopción de TypeScript puede resultar en un software más robusto y un desarrollo más eficiente. Algunas de las razones serían:

  • Ofrece tipado estricto
  • Mayor faciliad de refactorización, el soporte de tipado estricto permite una mayor facilidad para refactorizar el código existente.
  • Mayor organización y estructura, el soporte de tipado estricto en cierto modo te encamina a generar código más estructurado y a seguir ciertas directrices.
  • Ofrece compatibilidad con JavaScript, TypeScript no te impide seguir utilizando JavaScript allí donde lo consideres oportuno.

¿Cuándo deberías elegir JavaScript en vez de TypeScript?

TypeScript puede ser un excesivo para el desarrollo de proyecto pequeños con pocas líneas de código. En proyectos pequeños o de baja complejidad, el sistema de tipado estricto puede ser considerado una carga para el desarrollador.

En equipos de desarrollo que no estén familizarizados con TypeScript puede suponer un decremento en la velocidad de desarrollo. JavaScript es un lenguaje más ampliamente conocido y utilizado por lo que usarlo puede simplificar el desarrollo en cierto modo.

Hay que valorar cada situación y ser cuidadosos con la decisión que tomamos.

¿Qué es zod?

Zod es una biblioteca de declaración y validación de esquemas de TypeScript. Zod proporciona una sintaxis estricta y legible para describir y validar los esquemas de datos: string, number, object,...

Con Zod, se pueden describir los tipos de las variables, funciones y objetos mediante una sintaxis simple y fácil de entender, lo que ayuda a detectar errores de tipo en tiempo de ejecución y a garantizar que los datos sean válidos.

El objetivo de Zod es eliminar las declaraciones de tipo duplicadas. Con Zod, puedes declarar un validador y Zod inferirá automáticamente el tipo estático de TypeScript. Puedes encontrar más información sobre la inferencia en este post.

If you find any kind of error, something that it's not clear enough or you want me to drill down in more detail, don't hesitate to contact me.