TypeScript
Un sistema de tipos atornillado sobre JavaScript, y una de las apuestas más exitosas del diseño de lenguajes.
- Primera versión
- 2012
- Creado por
- Anders Hejlsberg and colleagues, at Microsoft
- Tipado
- Estático, estructural y gradual; se borra en tiempo de ejecución
- Extensiones de archivo
- .ts, .tsx, .d.ts
Para qué sirve
TypeScript llena un hueco específico: bases de código JavaScript demasiado grandes para que alguien las tenga completas en la cabeza. Agrega un sistema de tipos estático y no quita nada, compilando a JavaScript común con los tipos borrados. Nada sobrevive al tiempo de ejecución, y exactamente por eso puedes adoptarlo archivo por archivo.
El sistema de tipos es estructural y no nominal, así que lo que importa es la forma de un objeto y no el nombre con el que se declaró. También va bastante más allá de lo que ofrecen la mayoría de los lenguajes estáticos: uniones e intersecciones, tipos literales, tipos condicionales y mapeados, y una inferencia lo bastante buena para tipar la mayoría del código sin ninguna anotación. Esa expresividad no es presunción: tiene que describir JavaScript tal como la gente realmente lo escribió, incluidos patrones que ningún sistema de tipos en su sano juicio habría invitado.
Hoy es el estándar por defecto para trabajo de front-end nuevo de cualquier tamaño, y común en el servidor vía Node y Deno. El límite honesto es que las garantías se detienen en la frontera: todo lo que llega de una llamada de red o de un archivo JSON está tipado por aserción, no por demostración, así que la validación en tiempo de ejecución sigue siendo tu trabajo.
De dónde viene
Microsoft publicó TypeScript en octubre de 2012, con Anders Hejlsberg al frente del diseño, después de haber construido Turbo Pascal, Delphi y C#. La recepción fue escéptica: los lenguajes que compilan a JavaScript eran entonces una categoría saturada y poco querida, y CoffeeScript era el que estaba de moda.
Las herramientas cambiaron eso. El soporte de editor construido sobre el mismo compilador les dio a los desarrolladores de JavaScript, por primera vez, autocompletado preciso, renombrado e ir a la definición, y DefinitelyTyped aportó definiciones de tipos escritas a mano para bibliotecas que no traían ninguna. Que Angular lo adoptara en 2015 lo volvió creíble para proyectos grandes.
En la década siguiente la adopción se volvió casi universal, al punto de que publicar una biblioteca con tipos es lo mínimo esperable. El lenguaje siguió creciendo con cuidado: chequeos estrictos de null, uniones discriminadas, tipos de literales de plantilla, satisfies. Y en todo ese tiempo sostuvo una regla que le sirvió bien: el JavaScript emitido es JavaScript, y los tipos nunca cambian lo que se ejecuta.
Cómo se siente teclearlo
TypeScript es JavaScript más una segunda gramática de corchetes angulares y dos puntos. Los genéricos meten < y > dentro de identificadores comunes, las anotaciones agregan dos puntos a casi toda declaración, y los tipos unión convierten la barra vertical de tecla rara en tecla frecuente. De todo lo que hay aquí, este es el entrenamiento más duro para la fila de símbolos con Shift.
82 pasos en 5 tours, desde lo básico hasta programas completos.
Los tours
- Tipos y anotacionesEl sistema de tipos tal como te lo encuentras. 23 pasos.
- GenéricosParámetros de tipo, y después la parte que la gente se salta: leer tipos, no solo escribirlos. 20 pasos.
- Programación a nivel de tiposTipos condicionales, tipos mapeados, tipos de literales de plantilla y recursión. 12 pasos.
- Clases y patronesDonde los tipos se encuentran con el código real. 19 pasos.
- Async y módulosOcho pasos en la frontera. 8 pasos.