Skip to content

Instantly share code, notes, and snippets.

@NerOcrO
Last active October 7, 2023 15:11
Show Gist options
  • Save NerOcrO/8601d7bf2cf6ccbc469ea6018c8fe818 to your computer and use it in GitHub Desktop.
Save NerOcrO/8601d7bf2cf6ccbc469ea6018c8fe818 to your computer and use it in GitHub Desktop.
typescript tsconfig
// TS v5.2
// Quelques bases https://github.com/tsconfig/bases#centralized-recommendations-for-tsconfig-bases
// tsconfig.json
{
"compilerOptions": {
// Interop Constraints
// ???
"esModuleInterop": true,
// ???
"isolatedModules": true,
// Language and Environment
// Obligatoire uniquement s'il y a des decorators dans le code
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
// Version de la transpilation
// Plus elle est récente, moins ça prend de la place #eco-conception
// Attention s'il y a un front...
"target": "es2022",
// Permet que le type checking est les lib dont il a besoin en plus de "target"
"lib": [
"dom",
"esnext"
],
// Completeness
// Vérifie les types des libs que j'importe, pas tous ceux de la lib #performance
"skipLibCheck": true,
},
// Transpile uniquement ce répertoire
// Evite de transpiler les .ts en dehors de ce répertoire qui serait inutile #eco-conception
"include": ["src"],
// Dans la cas de l'utilisation du module ts-node
"ts-node": {
// Permet d'utiliser le transpiler "SWC" qui est écrit en Rust #performance
"swc": true
}
}
// tsconfig.build.json
{
"extends": "./tsconfig.json",
// Exclue de la transpilation les fichiers qui ne servent pas au build final #eco-conception
"exclude": ["**/test", "**/*.test.ts"]
}
// package.json
{
"scripts": {
// On n'a pas besoin de créer les fichiers JavaScript pour juste effectuer le type checking #eco-conception
"typecheck": "tsc --noEmit"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment