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:
