tsconfig/bases
Para partir de un tsconfig.json sensato y mantenido por la comunidad en lugar de configurarlo todo a mano.
Configuraciones base de tsconfig.json listas para extender, ajustadas a cada entorno de ejecución.
Notas y contexto
Qué es
tsconfig/bases es un proyecto comunitario que publica configuraciones base de tsconfig.json ajustadas a entornos de ejecución concretos (versiones de Node.js, Deno, Bun, React, Vite, Next.js, Svelte, etc.). Cada configuración se distribuye como un paquete npm bajo el espacio de nombres @tsconfig con licencia MIT, de modo que puedes heredarla con extends en lugar de escribir todas las opciones del compilador desde cero.
Para qué sirve
- Arrancar un proyecto TypeScript con opciones del compilador razonables para tu runtime sin investigar cada flag.
- Extender una base oficial (por ejemplo
@tsconfig/node22o@tsconfig/strictest) y sobreescribir solo lo que necesites. - Unificar la configuración de TypeScript entre varios paquetes de un monorepo.
- Mantenerse al día con las recomendaciones de la comunidad para cada versión de Node u otro entorno.
Cuándo usarlo
- Cuando creas un proyecto o paquete TypeScript y quieres un punto de partida fiable y mantenido en vez de copiar configuraciones de un tutorial.
- Si te interesa el modo más estricto disponible,
@tsconfig/strictestactiva de golpe las comprobaciones recomendadas. - Como alternativa a depender solo de los presets de tu framework, que no siempre cubren la versión exacta de tu runtime.
Ejemplo
Instala la base que corresponda a tu entorno:
npm install --save-dev @tsconfig/node22
Y extiéndela en tu tsconfig.json:
{
"extends": "@tsconfig/node22/tsconfig.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}
Con TypeScript 5.0 o superior puedes incluso combinar varias bases a la vez:
{
"extends": ["@tsconfig/node22/tsconfig.json", "@tsconfig/strictest/tsconfig.json"]
}
Puntos clave
- Cubre muchos entornos: Node.js (de la 10 a la 26 y LTS), Deno, Bun, React, Next.js, Vite, Svelte, React Native, Cypress y más.
- Cada base es un paquete npm independiente en el ámbito
@tsconfig, versionado y con licencia MIT. - Mantenido por la comunidad y actualizado conforme salen nuevas versiones de los runtimes.
Ten en cuenta
- Son solo bases: heredan opciones del compilador, pero tú sigues definiendo
include,exclude,pathsy rutas de salida. - Combinar varias configuraciones con un array en
extendsrequiere TypeScript 5.0 o superior. - Conviene fijar la base a la versión real de tu runtime; usar una que no corresponda puede activar o desactivar características de forma inesperada.