Nov 26, 2024

Aprender sobre tsconfig.json

typescripttsconfig.jsonangular
El archivo tsconfig.json es un archivo de configuración utilizado en proyectos Angular para especificar las opciones del compilador TypeScript. Este archivo le permite personalizar la forma en que se compila su código TypeScript, lo que puede ser útil para mejorar el rendimiento, la claridad y la mantenibilidad de su código.

Algunas de las opciones más comunes que puede configurar en el archivo tsconfig.json incluyen:

  • compilerOptions: Aquí definimos como debe comportarse el compilador.
  • target: Esta opción especifica la versión de TypeScript que se utilizará para compilar su código.
  • module: Esta opción especifica el formato del módulo para su código compilado. Las opciones comunes incluyen "commonjs" y "es6".
  • sourceMap: Esta opción especifica si se deben generar mapas de origen para su código compilado. Los mapas de origen son útiles para depurar su código, ya que le permiten ver el código TypeScript original que corresponde a cada línea de código JavaScript compilado.
  • outDir: Esta opción especifica el directorio donde se colocará su código JavaScript compilado.
  • declaration: Esta opción especifica si se deben generar declaraciones de tipos para su código compilado. Las declaraciones de tipos son útiles para otros desarrolladores que utilizan su código, ya que les permiten ver los tipos de los parámetros y valores de retorno de sus funciones.
  • Además de estas opciones comunes, hay muchas otras opciones que puede configurar en el archivo tsconfig.json. Para obtener una lista completa de las opciones disponibles, consulte la documentación de TypeScript.

    Archivo por defecto en Angular 18:

    
    /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
    /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
    {
      "compileOnSave": false,
      "compilerOptions": {
        "outDir": "./dist/out-tsc",
        "strict": true,
        "noImplicitOverride": true,
        "noPropertyAccessFromIndexSignature": true,
        "noImplicitReturns": true,
        "noFallthroughCasesInSwitch": true,
        "skipLibCheck": true,
        "esModuleInterop": true,
        "sourceMap": true,
        "declaration": false,
        "experimentalDecorators": true,
        "moduleResolution": "bundler",
        "importHelpers": true,
        "target": "ES2022",
        "module": "ES2022",
        "lib": [
          "ES2022",
          "dom"
        ]
      },
      "angularCompilerOptions": {
        "enableI18nLegacyMessageIdFormat": false,
        "strictInjectionParameters": true,
        "strictInputAccessModifiers": true,
        "strictTemplates": true
      }
    }