tsconfig.json
Outillage TypeScript & Optimisation du Compilateur

Générateur de Configuration TypeScript (tsconfig.json)

Générez des configurations tsconfig.json modernes et robustes pour Next.js, Node.js, Vite ou bibliothèques avec mode strict, alias de chemins et résolution de modules.

100% Confidentialité Client
Zéro transmission au serveur
Préréglages :
Cible & Résolution de Modules
Définitions de bibliothèque standard intégrées (lib) :
Vérification Stricte
Émission & Déclarations
Mode d'émission Bundler : TypeScript fonctionne uniquement comme vérificateur de types. Votre bundler produit les bundles d'exécution.
Interopérabilité & Modules
Mappage des Chemins (Paths)
→
Fichiers Inclus & Exclus
tsconfig.json Prêt pour TypeScript 5.x
Environnement Cible
ES2022 • preserve
Système de Modules
ESNext / bundler
Score de Rigueur
100/100 • Vérification stricte

100% Confidentialité Côté Client

Générez et validez vos options TypeScript directement dans votre navigateur sans transfert de données.

Standards TypeScript 5.x & Bundlers

Parfaitement conforme aux normes récentes incluant verbatimModuleSyntax et résolution bundler.

Audit & Détection de Conflits en Temps Réel

Repérez instantanément les incohérences de configuration, drapeaux obsolètes et optimisations de build.

Référence technique et guide d'architecture

Guide Développeur du Générateur de Configuration TypeScript (tsconfig.json) — Guide de référence

Générez des configurations tsconfig.json modernes et robustes pour Next.js, Node.js, Vite ou bibliothèques avec mode strict, alias de chemins et résolution de modules.

Paramètres clés et contrôles

targetEnum (ES5 | ES6/ES2015 - ES2023 | ESNext)

Définit la version ECMAScript cible pour le code JavaScript émis et les définitions de types standard. Les environnements modernes (Node.js 18+ et navigateurs récents) doivent cibler ES2022 ou ESNext.

Par défaut : ES2022
moduleResolutionEnum (Bundler | NodeNext | Node16 | Node10)

Détermine la façon dont TypeScript résout les spécificateurs d'importation vers les fichiers physiques. Utilisez 'Bundler' pour Vite, Turbopack ou Next.js, et 'NodeNext' pour les paquets natifs Node.js ESM/CJS.

Par défaut : Bundler
moduleEnum (ESNext | NodeNext | CommonJS | Preserve)

Définit le format de module généré dans le code JavaScript de sortie. 'ESNext' produit des instructions import/export modernes adaptées aux bundlers.

Par défaut : ESNext
strictBoolean (true | false)

Active la suite intégrale de vérifications strictes de types, notamment strictNullChecks, noImplicitAny, strictFunctionTypes et strictPropertyInitialization.

Par défaut : true
jsxEnum (react-jsx | react-jsxdev | preserve | react)

Contrôle la façon dont les structures JSX sont émises dans les fichiers .tsx. 'react-jsx' importe automatiquement le runtime JSX moderne sans nécessiter React dans la portée globale.

Par défaut : react-jsx
isolatedModulesBoolean (true | false)

Garantit que chaque fichier source peut être transpilé de manière sûre et isolée par des outils de compilation par fichier unique comme Vite, esbuild, SWC ou Babel.

Par défaut : true
skipLibCheckBoolean (true | false)

Ignore la vérification des types de tous les fichiers de déclaration (*.d.ts) dans node_modules, diminuant considérablement le temps de compilation tout en maintenant la sécurité du code applicatif.

Par défaut : true

Conseils de pro et bonnes practices

Séparer typage et transpilation

Lorsque vous associez TypeScript à Vite, Next.js, esbuild ou Turbopack, activez 'noEmit: true' avec 'moduleResolution: Bundler'. Le bundler se charge de la transpilation multithread ultrarapide, laissant tsc se concentrer uniquement sur la vérification des types (tsc --noEmit).

Configurer les alias sans baseUrl

Définissez des alias d'importation dans compilerOptions.paths (par ex. '@/*': ['./src/*']). Depuis TypeScript 4.1, les chemins peuvent être résolus relativement à l'emplacement du fichier tsconfig.json sans définir baseUrl, évitant ainsi les ambiguïtés dans les monorepos.

Builds incrémentaux en monorepo

Dans les espaces de travail pnpm, Turborepo ou Nx, subdivisez vos packages avec 'composite: true' et 'declaration: true'. Les référencer dans le fichier racine via 'references' permet à 'tsc --build' d'exploiter le cache de .tsbuildinfo pour des compilations incrémentales instantanées.

Assertion d'assignation pour ORM

Lors de l'utilisation d'ORMs comme TypeORM ou Prisma avec strictPropertyInitialization activé, des erreurs peuvent signaler des propriétés non assignées dans le constructeur. Au lieu de désactiver le mode strict globalement, utilisez l'opérateur d'assertion définitive ('title!: string') sur les champs de base de données.

Pièges courants et dépannage

Erreur 'Cannot find module or its corresponding type declarations' lors de l'import de paquets ESM récents

Définissez 'moduleResolution: Bundler' si vous compilez avec Vite, Webpack 5 ou Next.js. Si vous développez une application native Node.js, configurez 'moduleResolution: NodeNext' et assurez-vous que vos imports relatifs comportent une extension de fichier explicite (ex. import { util } from './util.js').

Les alias de chemins (@/*) fonctionnent avec tsc mais provoquent une erreur 'Cannot find module' à l'exécution

Le compilateur TypeScript ne réécrit pas les chemins d'importation dans les fichiers JavaScript émis. Pour Node.js, utilisez 'tsconfig-paths', 'tsx' ou les sous-chemins natifs de package.json ('#imports'). Côté frontend, configurez le même alias dans vite.config.ts ou webpack.config.js.

Compilations TypeScript excessivement lentes et latence de l'IDE sur les grands projets

Ajoutez 'skipLibCheck: true' dans compilerOptions. Cela neutralise la vérification redondante des fichiers de déclaration de node_modules, accélérant les temps de compilation de 50 % à 70 % sans compromettre la sécurité de votre propre code.

Foire aux questions (FAQ)

Quelle est la différence entre moduleResolution 'Bundler' et 'NodeNext' ?▼

'NodeNext' reproduit la résolution native des modules ECMAScript de Node.js, imposant les extensions explicites (.js) pour les imports relatifs et respectant strictement les 'exports' de package.json. 'Bundler' est conçu pour les outils comme Vite, Webpack et esbuild, autorisant les imports sans extension, la résolution hybride ESM/CJS et l'import direct de ressources (CSS, images).

Pourquoi le réglage strict: true est-il vivement recommandé pour tout nouveau projet ?▼

'strict: true' active simultanément des gardes de sécurité cruciaux comme strictNullChecks et noImplicitAny. Cela élimine dès la compilation des pans entiers de bugs à l'exécution (tels que 'undefined is not a function'). Migrer un projet existant vers le mode strict est complexe et coûteux, d'où l'importance de le configurer dès la création.

Comment target, module et lib interagissent-ils dans tsconfig.json ?▼

'target' contrôle la syntaxe JavaScript générée (ex. classes, async/await). 'module' détermine le système de modules utilisé dans le code émis (ex. CommonJS vs ESM). 'lib' spécifie quelles déclarations d'APIs globales (comme DOM ou ES2022) sont reconnues par le compilateur sans modifier le JavaScript final.

À quoi sert isolatedModules: true et pourquoi Vite et SWC l'exigent-ils ?▼

Des compilateurs rapides comme esbuild, SWC ou Babel transpilent chaque fichier individuellement en parallèle sans charger l'arbre syntaxique global. Des fonctionnalités comme 'const enum' ou les ré-exports de types sans 'export type' peuvent générer du code erroné en mode isolé. 'isolatedModules: true' avertit tsc de ces incompatibilités à l'avance.

Faut-il versionner les fichiers .tsbuildinfo et les dossiers de sortie dans Git ?▼

Non. Ajoutez '*.tsbuildinfo' ainsi que les répertoires de sortie (comme dist/, build/, out/) dans votre fichier .gitignore. Le fichier .tsbuildinfo contient des empreintes associées aux chemins absolus de la machine locale, et les artefacts finaux doivent être générés de façon reproductible par votre pipeline d'intégration continue.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur : Générateur de DDL CREATE TABLE JSON vers ClickHouseDéveloppement

Convertissez des documents JSON en DDL SQL ClickHouse avec moteur MergeTree, types UInt/Int/Float/String/DateTime et mappage de colonnes Array/Nested.

Ouvrir l'outil→
Guide Développeur : Générateur de Schéma de Table Google BigQuery depuis JSONDéveloppement

Déduisez et convertissez des objets JSON en schémas de table Google Cloud BigQuery au format JSON avec prise en charge des types RECORD, STRING, INTEGER, NUMERIC et TIMESTAMP.

Ouvrir l'outil→
Guide Développeur : Générateur de DDL CREATE TABLE JSON vers SnowflakeDéveloppement

Convertissez vos structures et charges utiles JSON en instructions SQL CREATE TABLE prêtes pour la production dans Snowflake avec des types de données optimisés tels que VARIANT, VARCHAR, NUMBER, BOOLEAN et TIMESTAMP_NTZ.

Ouvrir l'outil→
Guide Développeur : Générateur de Variables et Locals Terraform HCL depuis JSON / YAMLDéveloppement

Convertissez des structures JSON et YAML en contraintes de types HCL Terraform (type = object({...})), valeurs par défaut, blocs locals et fichiers terraform.tfvars.

Ouvrir l'outil→
Guide Développeur : Convertisseur OpenAPI / Swagger vers GraphQL SDLDéveloppement

Convertissez les points de terminaison REST, corps de requête et schémas JSON OpenAPI 3.0/3.1 et Swagger 2.0 en types, requêtes, mutations et entrées GraphQL SDL.

Ouvrir l'outil→
Guide développeur du générateur de schémas TypeScript TypeBox depuis SQL DDLDéveloppement

Convertissez les instructions SQL CREATE TABLE en schémas de validation à l'exécution @sinclair/typebox utilisant Type.Object, Type.String, Type.Number et Type.Optional.

Ouvrir l'outil→