Passer au contenu principal
eLearner.app
Module 7 · Leçon 1 sur 213/14 dans le cours~12 min
Leçons du module (1/2)

Configuration avec tsconfig.json

Le fichier tsconfig.json définit le répertoire racine du projet TypeScript et spécifie les options de compilation requises pour compiler le projet.

Lorsque vous exécutez tsc dans le dossier d'un projet, le compilateur recherche ce fichier pour comprendre comment se comporter.


Structure du fichier tsconfig.json

Un fichier de configuration typique ressemble à ceci :

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

Les clés principales sont :

  • compilerOptions : Les paramètres du compilateur.
  • include : Les fichiers ou dossiers qui doivent être compilés.
  • exclude : Les fichiers ou dossiers à ignorer lors de la compilation.

Options clés du compilateur

Voici les options les plus importantes à connaître :

  1. target : Spécifie la version de JavaScript générée en sortie (ex. es5, es6/es2015, es2020, esnext).
  2. module : Spécifie le système de modules à utiliser dans la sortie (ex. commonjs, esnext, node16).
  3. strict : Active un large groupe de vérifications de types strictes. Il est fortement recommandé de le définir sur true pour maximiser la sécurité du code. Il active des options telles que :
    • noImplicitAny : Génère une erreur si l'annotation de type est manquante pour des paramètres qui seraient sinon déduits comme any.
    • strictNullChecks : Empêche l'assignation de null ou undefined à des types qui ne les prévoient pas explicitement dans leur union.

À vous de jouer

Exercice 1 : Gestion de strictNullChecks

Exercice#ts.m7.l1.e1
Tentatives : 0Chargement…

Sous l'option strictNullChecks: true du fichier tsconfig.json, nous ne pouvons pas assigner null ou undefined à des types primitifs. Déclarez une fonction appelée parseAge qui accepte une entrée de type string | null et renvoie un number si l'entrée n'est pas nulle et est un entier valide, sinon elle renvoie 0. Gérez explicitement le cas null pour passer la compilation stricte.

Chargement de l'éditeur…
Afficher l'indice

Vérifiez si l'entrée est null au début de la fonction et retournez immédiatement 0 avant de traiter la chaîne.

Solution disponible après 3 tentatives

Exercice 2 : Typage strict sans Implicit Any

Exercice#ts.m7.l1.e2
Tentatives : 0Chargement…

Sous noImplicitAny: true, chaque paramètre dont le type ne peut pas être déduit doit être typé explicitement. Créez une fonction appelée processItems qui accepte un tableau items (tableau de nombres) et une fonction callback qui prend un seul nombre comme argument et ne renvoie rien. Assurez-vous de ne pas utiliser any et de tout typer explicitement.

Chargement de l'éditeur…
Afficher l'indice

Déclarez la fonction avec la signature function processItems(items: number[], callback: (item: number) => void): void.

Solution disponible après 3 tentatives