web-dev-qa-db-fra.com

Comment utiliser @types avec TypeScript 2

Jusqu'ici, nous sommes habitués à tsd ou (La meilleure version de celui-ci) dactylographie

Mais maintenant que TypeScript 2 offre le nouveau @types fonctionnalité, comment dois-je convertir mon projet actuel pour utiliser @types?

J'ai tsd.json (typings.json est quelques cas) avec toutes les dépendances, quelles sont les étapes pour faire le déplacement à TypeScript 2?

Quelles sont les nouvelles nouvelles ? Est-ce que @types supporte des versions spécifiques?

47
gilamran

C'est très simple. Installez simplement les définitions dont vous avez besoin via npm.

Par exemple, si vous avez besoin de lodash, vous pouvez faire:

npm install --save @types/lodash

Une fois installé, vous pouvez l’utiliser tout de suite dans votre projet. TypeScript résoudra les typages du paquet @types installé à partir du dossier node_modules/@ types par défaut. Il n'y a plus besoin d'un fichier tsd.json ou typings.json .

Points supplémentaires:

  • Les versions majeure et mineure du paquet @types dans npm doivent correspondre à la version du paquet.
  • Vous pouvez rechercher des types ici: http://Microsoft.github.io/TypeSearch/
  • Lisez à propos de typeRoots et types ici . Faites particulièrement attention à ces deux points:
    • Si typeRoots est spécifié dans tsconfig.json , seuls les dossiers spécifiés seront utilisés pour les racines de type. Cela exclura ./ npm_modules/@ types/ à moins que vous ne le spécifiiez.
    • Si types est spécifié dans tsconfig.json , seuls les packages spécifiés seront inclus.

Lire la suite dans le blog ici .

57
David Sherret

TypeScript 2. se débarrasse du système précédent Typings.
Now TypeScript 2. devrait par défaut regarder dans ./node_modules/@types et obtenez les types que vous avez installés en tant que modules de nœud distincts, par exemple. npm install --save @types/react (comme mentionné par @David Sherret)

Il y a un bogue dans la version actuelle TypeScript 2.0 beta, qui ne charge pas de nouveaux types. Manuellement via cmd, le nouveau tsc compile les fichiers, mais VS 2015 n’est pas pris en charge par IntelliSense et aucune erreur ne s’affiche lorsqu'un fichier .ts est en mode édition.

Pour le résoudre, modifiez tsconfig.json avec les paramètres similaires:

{
  "compilerOptions": {
     // ... other config rows 
   "typeRoots": [ "node_modules/@types/" ],
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ],
  }
}

Pour moi manuel "types" déclaration a aidé à résoudre ce problème, pour les autres gars "typeRoots" aidé. J'espère que cela fera gagner du temps au développeur.

38
Artru

On dirait qu’ils ne sont que des paquets npm, vous pouvez trouver tous les paquets supportés ici .

tsc récupérera tous les types dans le dossier node_modules .

Vous pouvez déplacer les dépendances que vous avez dans typings.json dans package.json (à condition que vous changiez aussi les noms bien sûr).

Vous pouvez en lire plus à ce sujet ici .

3
toskv

comment dois-je convertir mon projet actuel pour utiliser @types

Je recommande vivement de rester un peu plus longtemps.

par exemple. les problèmes sont toujours en cours de réparation ... il y a à peine 4 heures: https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422

2
basarat