Plusieurs options s'offrent à vous en fonction de la bibliothèque en question, de la manière dont elle est rédigée et du niveau de précision que vous recherchez. Passons en revue ces options, par ordre décroissant de désirabilité.
Il existe peut-être déjà
Vérifiez toujours que DefinitelyTyped ( https://github.com/DefinitelyTyped/DefinitelyTyped ) en premier lieu. Il s'agit d'un repo communautaire rempli de milliers de fichiers .d.ts et il est très probable que la chose que vous utilisez s'y trouve déjà. Vous devriez également consulter TypeSearch ( https://microsoft.github.io/TypeSearch/ ) qui est un moteur de recherche pour les fichiers .d.ts publiés par NPM ; il aura un peu plus de définitions que DefinitelyTyped. Quelques modules fournissent également leurs propres définitions dans le cadre de leur distribution NPM, voyez donc si c'est le cas avant d'essayer d'écrire les vôtres.
Vous n'en avez peut-être pas besoin
TypeScript prend désormais en charge l'élément --allowJs
et fera plus d'inférences basées sur JS dans les fichiers .js. Vous pouvez essayer d'inclure le fichier .js dans votre compilation avec l'option --allowJs
pour voir si cela permet d'obtenir des informations suffisantes sur le type de produit. TypeScript reconnaîtra des choses comme les classes de style ES5 et les commentaires JSDoc dans ces fichiers, mais peut se tromper si la bibliothèque s'initialise d'une manière bizarre.
Commencer avec --allowJs
Si --allowJs
vous a donné des résultats satisfaisants et que vous souhaitez écrire vous-même un meilleur fichier de définition, vous pouvez combiner les éléments suivants --allowJs
avec --declaration
pour voir la "meilleure estimation" de TypeScript sur les types de la bibliothèque. Cela vous donnera un point de départ décent, et peut être aussi bon qu'un fichier écrit à la main si les commentaires JSDoc sont bien écrits et que le compilateur a été capable de les trouver.
Démarrer avec dts-gen
Si --allowJs
n'a pas fonctionné, vous pouvez utiliser dts-gen ( https://github.com/Microsoft/dts-gen ) pour obtenir un point de départ. Cet outil utilise la forme de l'objet en cours d'exécution pour énumérer avec précision toutes les propriétés disponibles. L'avantage est que cela tend à être très précis, mais l'outil ne prend pas encore en charge la récupération des commentaires JSDoc pour remplir des types supplémentaires. Vous exécutez cet outil de la manière suivante :
npm install -g dts-gen
dts-gen -m <your-module>
Cela permettra de générer your-module.d.ts
dans le dossier en cours.
Appuyer sur le bouton "Snooze
Si vous souhaitez faire tout cela plus tard et vous passer des types pendant un certain temps, TypeScript 2.0 vous permet désormais d'écrire
declare module "foo";
qui vous permettra import
les "foo"
module de type any
. Si vous souhaitez traiter une question globale plus tard, écrivez simplement
declare const foo: any;
qui vous donnera un foo
variable.