Skip to content

¿Cómo trabajar Node.js con Typescript?

En esta guía aprenderás a trabajar con Node.js y Typescript, con una alternativa moderna y sin tantas complicaciones.

Recursos

Node + Typescript + tsx + pkgroll

Inicializar el proyecto:

sh
npm init -y

Instalar dependencias:

sh
npm i -D tsx pkgroll typescript @types/node

Directorio de trabajo:

.
├── dist
├── node_modules
├── src
│   └── index.ts
├── package.json
└── tsconfig.json
└── .gitignore

Crear archivo: tsconfig.json

json
{
  "compilerOptions": {
    "target": "es2022",
    "strict": true,
    "outDir": "./dist",
    "moduleDetection": "force",
    "module": "Preserve",
    "resolveJsonModule": true,
    "allowJs": true,
    "esModuleInterop": true,
    "isolatedModules": true
  }
}

package.json: debes agregar los scripts necesarios para compilar y ejecutar el proyecto. Además configurar el exports (donde terminarán los archivos compilados) y el type (para que Node.js pueda reconocer el módulo).

json
{
  "exports": "./dist/index.js",
  "type": "module",
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "build": "pkgroll",
    "start": "node dist/index.js"
  },
  "devDependencies": {
    "@types/node": "^22.9.0",
    "pkgroll": "^2.5.1",
    "tsx": "^4.19.2",
    "typescript": "^5.6.3"
  }
}

src/index.ts: Crea este archivo para probar que todo funcione correctamente.

ts
console.log("Hello, world!");

Run: ejecuta el proyecto con el siguiente comando.

sh
npm run dev

Build: compila el proyecto con el siguiente comando.

sh
npm run build

Start: ejecuta el proyecto compilado con el siguiente comando.

sh
npm start

.gitignore: Agrega el archivo .gitignore para evitar subir los módulos de Node.js a tu repositorio.

node_modules

Con estas configuraciones ya puedes trabajar con Node.js y Typescript de una forma más moderna y sin tantas complicaciones.

¿nodemon? ¿ts-node?

Nótese que no necesitamos nodemon, ts-node, ni otras herramientas para trabajar con Node.js y Typescript. Todo se hace con tsx.