Libreria Gratis Activo

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/node22 o @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/strictest activa 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, paths y rutas de salida.
  • Combinar varias configuraciones con un array en extends requiere 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.
Volver al directorio
Volver al directorio