J'ai un problème avec la dactylographie. J'ai la hiérarchie suivante:
. +-- build | +-- @types | | +-- declaration1.js | | +-- declaration2.js | +-- common | | +-- utils1.js | | +-- utils2.js | +-- tests | | +-- utils1.test.js | | +-- utils2.test.js
Dans mon tsconfig.json, je mets cette configuration pour que tous mes types soient exposés à la fois dans les tests et dans les communs (ou vscode se plaint):
. +-- build | +-- common | | +-- utils1.js | | +-- utils2.js // nothing else
Mon problème est que je ne veux pas compiler tout cela, je veux juste compiler les communs (qui sont des utils, je ne peux pas obtenir un (ou même plusieurs) point (s) d'entrée )).
Je voudrais donc taper tsc
et obtenir un dossier build
comme ceci:
{ "compilerOptions": { "outDir": "build/", }, "include": ["tests", "common", "@types"] }
3 Réponses :
Pour inclure des types mais pas les compiler, ajoutez-les à "typeRoots"
dans votre tsconfig.json
. Tout ce qui se trouve dans "include"
sera compilé.
{ "exclude": [ "node_modules", "wwwroot" ] }
Pour ignorer les fichiers ou répertoires, utilisez l'option "exclude"
, par exemple:
{ "compilerOptions": { "typeRoots": [ "@types", "tests" ] } }
Si je le fais, j'obtiens l'erreur Impossible de trouver le fichier de définition de type pour «commun».
. VSCode se plaint également des types non trouvés
Vous pouvez utiliser des modules pour importer des classes dans vos fichiers communs. Dans votre declaration.ts
: Déclaration de classe d'exportation {…}
. Dans votre utils.ts
: importez * en tant que déclaration1 depuis '../@types/declaration1
. Vous pouvez maintenant utiliser Declaration1.Declaration
pour accéder à votre classe / type. Il n'est également plus nécessaire d'inclure typeRoots
dans votre tsconfig.json
.
Vous pouvez créer un nouveau tsconfig.json sous les dossiers que vous ne voulez pas construire, y ajouter «noEmit: true».
Essayez de créer un nouveau tsconfig.json sous le dossier que vous ne voulez pas construire et ajoutez ci-dessous:
{ "compilerOptions": { ... }, "include": ["src/**/*.ts"] // files you want to build }
et incluez les fichiers que vous voulez construire dans le tsconfig.json original: p >
{ "compilerOptions": { "noEmit": true }, "exclude": ["src/**/*.ts"] // files you want to build }