Saltar al contenido principal
eLearner.app
Módulo 7 · Lección 1 de 213/14 en el curso~12 min
Lecciones del módulo (1/2)

Configuración con tsconfig.json

El archivo tsconfig.json define el directorio raíz del proyecto TypeScript y especifica las opciones de compilación necesarias para compilar el proyecto.

Cuando ejecutas tsc en la carpeta de un proyecto, el compilador busca este archivo para saber cómo comportarse.


Estructura del archivo tsconfig.json

Un archivo de configuración típico se ve así:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

Las claves principales son:

  • compilerOptions: Las configuraciones para el compilador.
  • include: Los archivos o carpetas que deben compilarse.
  • exclude: Los archivos o carpetas que se deben ignorar durante la compilación.

Opciones clave del compilador

Aquí están las opciones más importantes que debes conocer:

  1. target: Especifica la versión de JavaScript generada en la salida (por ejemplo, es5, es6/es2015, es2020, esnext).
  2. module: Especifica el sistema de módulos que se utilizará en la salida (por ejemplo, commonjs, esnext, node16).
  3. strict: Habilita un amplio grupo de comprobaciones de tipo estrictas. Se recomienda encarecidamente establecerlo en true para maximizar la seguridad del código. Habilita opciones como:
    • noImplicitAny: Genera un error si falta la anotación de tipo para parámetros que de otro modo se deducirían como any.
    • strictNullChecks: Evita la asignación de null o undefined a tipos que no los admiten explícitamente en su unión.

Pruébalo tú mismo

Ejercicio 1: Gestión de strictNullChecks

Ejercicio#ts.m7.l1.e1
Intentos: 0Cargando...

Bajo la opción strictNullChecks: true del archivo tsconfig.json, no podemos asignar null o undefined a tipos primitivos. Declara una función llamada parseAge que acepte una entrada de tipo string | null y devuelva un number si la entrada no es nula y es un entero válido, de lo contrario devuelve 0. Gestiona explícitamente el caso null para superar la compilación estricta.

Cargando editor...
Mostrar pista

Comprueba si input es null al principio de la función y devuelve inmediatamente 0 antes de procesar la cadena.

Solución disponible después de 3 intentos

Ejercicio 2: Tipado estricto sin Implicit Any

Ejercicio#ts.m7.l1.e2
Intentos: 0Cargando...

Bajo noImplicitAny: true, cada parámetro cuyo tipo no se pueda inferir debe estar tipado explícitamente. Crea una función llamada processItems que acepte un array items (array de números) y una función callback que tome un solo número como argumento y no devuelva nada. Asegúrate de no usar any y tipar todo explícitamente.

Cargando editor...
Mostrar pista

Declara la función con la firma function processItems(items: number[], callback: (item: number) => void): void.

Solución disponible después de 3 intentos