Cómo (y por qué) deberías usar TypeScript con Node y Express.

Podemos usar el autocompletado en clases que han sido importadas de otros archivos.

La dificultad de mantenimiento es una de las principales razones por las que los desarrolladores de Java y C # evitan migrar grandes proyectos a JS. Podemos decir que Typescript es un lenguaje empresarial que supera esta barrera.

Cómo configurar un proyecto Express con Typescript

Vayamos ahora paso a paso a crear un entorno para utilizar el lenguaje Typescript dentro de un proyecto Express.js.

npm init

Instalemos ahora el paquete typescript.

npm install typescript -s

Sobre el paquete node Typescript

Node.js es un motor que ejecuta Javascript y no Typescript. El paquete Typescript de node le permite transpilar sus archivos .ts a scripts .js. También se puede utilizar Babel para transpilar Typescript, sin embargo el estándar del mercado es utilizar el paquete oficial de Microsoft.

Dentro de nuestro package.json pondremos un script llamado tsc:

"scripts": {
"tsc": "tsc"
},

Esta modificación nos permite llamar a funciones typescript desde la línea de comandos en la carpeta del proyecto. Así podemos utilizar el siguiente comando:

npm run tsc -- --init

Este comando inicializa el proyecto typescript creando el archivo tsconfig.json. Dentro de este archivo descomentaremos la opción outDir y elegiremos una ubicación para que se entreguen los archivos .js transpilados:

Instalación de express.js

npm install express -s

Los paquetes Express y Typescript son independientes. La consecuencia de esto es que Typescript no «conoce» los tipos de clases de Express. Existe un paquete npm específico para que Typescript reconozca los tipos de Express.

npm install @types/express -s

Hola mundo

Para tener una aplicación lo más sencilla posible, utilizaré el ejemplo de hola mundo del tutorial express.js:

https://expressjs.com/pt-br/starter/hello-world.html

Dentro de nuestro proyecto, crearemos una carpeta llamada app. Dentro de esta carpeta crearemos un archivo llamado app.ts con el siguiente contenido:

Compilando nuestra primera aplicación:

npm run tsc

Como podéis ver, el comando ha creado automáticamente la carpeta build y el archivo .js.

Ejecutando el express:

node build/app.js

Con esto, ya tenemos un servidor corriendo en el puerto 3000:

Ejecutando TypeScript sin transpilar

Podemos ejecutar typescript directamente en el nodo con el paquete ts-node.

Este paquete se recomienda sólo para el desarrollo. Para hacer el despliegue final en producción, utiliza siempre la versión javascript de tu proyecto.

El ts-node ya está incluido como dependencia de otro paquete, tts-node-dev. Después de instalar,ts-node-dev podemos ejecutar comandos que reinicien el servidor cada vez que cambie un archivo del proyecto.

npm install ts-node-dev -s

Dentro de nuestro packege.json añadiremos dos scripts más:

"scripts": {
"tsc": "tsc",
"dev": "ts-node-dev --respawn --transpileOnly ./app/app.ts",
"prod": "tsc && node ./build/app.js"
},

Para iniciar el entorno de desarrollo:

npm run dev

Para ejecutar el servidor en modo producción:

npm run prod

El proyecto final se puede encontrar en el repositorio de github:

¡Suscríbete a Decoded, nuestro canal oficial de YouTube!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.