--verbatimModuleSyntax
TypeScript 🟡 MidDéfinition
Option introduite en TypeScript 5.0 (16 mars 2023) : les imports et exports sont conservés tels qu'écrits, et seuls ceux marqués type sont supprimés. Fini l'élision implicite des imports « probablement de type » : le code émis est prévisible, ce qui est indispensable aux transpileurs fichier par fichier et au type stripping de Node.js, qui la recommande avec erasableSyntaxOnly.
Analogie
Le traducteur qui rend chaque phrase mot pour mot au lieu de décider ce qui « ne sert à rien ».
Exemple de code
// tsconfig.json : { "compilerOptions": { "verbatimModuleSyntax": true } }
import type { Utilisateur } from './types.ts'; // effacé
import { type Role, charger } from './api.ts'; // Role effacé, charger gardé
// ❌ Erreur : Utilisateur est un type, il faut `import type`
// import { Utilisateur } from './types.ts';
export type { Utilisateur };
Cas d'usage
Projets ESM modernes, bibliothèques, exécution directe par Node/Bun/Deno, builds Vite/esbuild/Oxc.
Anti-pattern
Le combiner avec des imports CommonJS déguisés (import x = require) sous module esnext : erreur de compilation.
Termes liés
Fiche mise à jour le 2026-09-27