web-dev-qa-db-fra.com

Qu'est-ce que "DefinitelyTyped"?

Je vois que "DefinitelyTyped" est quelque chose lié au développement TypeScript/JavaScript, mais je ne pouvais pas comprendre son utilisation ou un exemple de code pour le comprendre.

J'ai regardé http://definitelytyped.org/ et http://bartvds.github.io/projects/dt.html mais je n'ai pas pu mieux le comprendre.

Tout pointeur, article, exemple de code est très apprécié.

33
Venkatesh

TypeScript vous permet d'avoir Fichiers de déclaration qui sont des fichiers qui vous permettent de décrire la forme de code qui est écrit (par exemple) en JavaScript simple. Ainsi, en référençant l'un de ces fichiers, vous indiquez à TypeScript exactement comment le code JavaScript ou la bibliothèque que vous utilisez doit être supposé être "typé". Bien sûr, cela signifie que le fichier de déclaration doit être soigneusement écrit et synchronisé avec la bibliothèque JavaScript que vous utilisez.

DefinitelyTyped est le référentiel le plus populaire des fichiers de déclaration pour de nombreuses bibliothèques JavaScript dont la plupart ne fournissent pas leurs propres fichiers de déclaration (car ils ne sont pas développés avec TypeScript et ne sont pas tenus de travailler avec). Il contient donc des fichiers de déclaration maintenus par la communauté.

En utilisant DefinitelyTyped et les fichiers de déclaration qu'il contient, vous pouvez utiliser la plupart des bibliothèques JavaScript populaires comme s'il s'agissait de bibliothèques TypeScript dans le sens où vous aurez une validation de type par le compilateur (comme l'indique le fichier de déclaration). En outre, étant si populaire, DefinitelyTyped sera organisé par la communauté pour contenir des fichiers de déclaration valides (bien que le développement Web soit quelque chose qui évolue très rapidement, vous pouvez finir par trouver quelques problèmes spécialement dans les bibliothèques obscures).

51
Fredy Treboux

La description ci-dessus est assez claire, cependant, si vous êtes comme moi, le code ci-dessous peut peut-être vous aider à avoir une vue d'ensemble.

Par exemple, vous avez un package lodash dans votre projet, vous en importez et utilisez une méthode.

import random from 'lodash/random';

const result = random(????);

Vous pouvez vous arrêter et vous demander combien de paramètres cette méthode peut nécessiter? et quel type de données pour chaque paramètre? Vous devez rechercher la page d'accueil lodash, trouver la documentation API de random pour savoir comment l'utiliser. Après avoir effectué un tas de tâches, vous pouvez finir par fournir un mauvais ordre des paramètres, mais rien ne s'affichera jusqu'à ce que vous exécutiez votre application et obteniez l'erreur.

C'est là que DefinitelyType montre sa puissance. Après avoir installé le DefinitelyType de lodash

yarn add @types/lodash
  • lorsque vous commencez à taper la méthode random, une info-bulle vous montrera et vous guidera comment utiliser les paramètres.
  • lorsque vous fournissez un mauvais type de paramètres de données, il affichera l'erreur afin de vous le faire savoir et de le corriger immédiatement.

Est-ce que ça fait du sens? sinon, ne vous inquiétez pas, éteignez la musique et écoutez ça vidéo , je suis sûr que vous le comprendrez.

12
Tatsu