De la Machine 2.* le " tsconfig.json " a les deux propriétés suivantes disponibles:
{
'typeRoots': [],
'types': []
}
Je vais vous décrire en détail à la fois dans l'ordre.
-
'typeRoots' indique la racine de dossiers dans lesquels les transpiler devriez regarder pour des définitions de type (exemple: 'node_modules').
Si vous avez été à l'aide de la machine, vous savez que pour différentes bibliothèques qui n'ont pas été écrites à l'aide de la machine, vous avez besoin de définitions pour le compilateur de reconnaître les variables globales et d'avoir l'assistance IntelliSense.
Cette question a été abordée par les projets (repos) comme " DefinatelyTyped qui utilisent des outils tels que le dnt ou typings module à télécharger typings nécessaires à votre projet, mais ils viennent aussi avec leur propre 'json' fichier qui doit être conservé séparément.
Avec TS2.* vous pouvez maintenant chercher la définition des dépendances à l'aide de 'npm'. Donc, au lieu d'utiliser une autre cli bibliothèque comme dnt ou typings, vous pouvez maintenant simplement utiliser:
npm i @types/{LIB}
de cette façon, toutes les dépendances sont gérées à l'aide du package.json et vous pouvez facilement éliminer la nécessité d'un autre 'json' fichier à conserver dans votre projet.
-
"types" sont les vrais noms de bibliothèque qui se trouve dans le typeRoot.
-
donc, disons que vous avez la configuration par défaut pour typeRoots qui ressemblerait à quelque chose comme:
"typeRoots": [
"./node_modules/@types"
]
disons que vous souhaitez désormais utiliser le jasmin comme un framework de test pour votre projet, si vous avez votre typeRoot dossier configuré, vous avez trop à faire maintenant est d'exécuter la commande: npm i @types/jasmine --save-dev
-
après la définition de package est installé, vous avez juste besoin de configurer votre "types" maison " tsconfig.json " comme suit:
"types": [
"core-js",
"jasmine",
"requirejs",
"chance"
]
Pour conclure, fondamentalement, vous dire le TS compilateur suivantes:
typeRoots: Vous devez regarder pour typings dans ces dossiers.
types: Dans l'un des dossiers fournis ci-dessus, vous trouverez les définitions de ces cadres conceptuels (sous-dossiers).
Donc, en utilisant le scénario ci-dessus, et si nous ajoutons un autre racine:
"typeRoots": [
"./node_modules/@types",
"./custom_definitions"
],
"types": [
"jasmine",
]
TS va maintenant chercher les fichiers de définition dans
./node_modules/@types/jasmine
ou
./custom_definitions/jasmine
Espérons que cette aide!