web-dev-qa-db-fra.com

Impossible de trouver le fichier de définition de type pour 'jquery'

Je viens de lancer une mise à jour dans NuGet pour mettre à jour mes paquets. Ensuite, je ne peux plus compiler et je reçois l'erreur ci-dessus.

Le fichier de définition jQuery est dans mon projet. Mais pour une raison quelconque, le fichier de définition d'amorçage ne peut plus le trouver.

Cela fait longtemps que je n'ai pas travaillé sur ce projet. Je suis presque sûr d'avoir mes fichiers de définition dans un répertoire complètement différent avant la mise à jour. Cependant, la plupart du code et de la structure de fichier ont été créés automatiquement par les packages Visual Studio NuGet.

Où ces liens ou références sont-ils situés afin que les fichiers de définition puissent être trouvés correctement? Je suis très nouveau sur TypeScript, donc si vous pouvez expliquer en détail ou fournir des liens pour en savoir plus, ce serait apprécié.

 code and error

 file tree


Modifier:

J'ai découvert qu'ils s'appellent Directives Triple Slash . Mais ces pages ne me disent pas assez pour comprendre cette erreur.

Cela me dit que <reference types="..."/> devrait être utilisé pour les packages @types, ce que je crois être les fichiers .d.ts. J'ai essayé de changer le nom de jquery.d.ts en index.d.ts. Et j'ai essayé d'inclure le chemin complet tel que ../jquery/jquery.d.ts. Ni l'un ni l'autre n'a fonctionné.

Enfin, j'ai trouvé la ligne suivante dans angular.d.ts:

/// <reference path="../jquery/jquery.d.ts" />

J'ai copié cela dans le bootcode index.d.ts et cela a semblé corriger l'erreur.

Mais cela n'a pas de sens pour moi. Premièrement, j'essaie de créer un lien vers un fichier de définition, pas un fichier TypeScript. Donc, je devrais utiliser reference types, pas reference path, selon l'article ci-dessus. Mais reference types ne fonctionne pas. Qu'est-ce que j'oublie ici?

L'article dit aussi:

Utilisez ces directives uniquement lorsque vous créez un fichier d.ts à la main.

Je n'ai pas écrit ces fichiers. Ils viennent de NuGet et semblent être générés automatiquement. Alors pourquoi dois-je changer cela?

22
embedded.kyle

Ils viennent de NuGet et semblent être générés automatiquement.

N'utilisez pas de nuget pour les définitions de type. NPM est la voie à suivre. 

npm install @types/jquery -D 

Et alors vous pouvez: 

<reference types="jquery"/>

Bienvenue dans le futur ????

11
basarat

J'ai constaté que le remplacement de /// <reference types="jquery" /> par /// <reference path="../JQuery.d.ts" /> dans jquery.slim.d.ts après l'installation de @ types/jquery résolvait ce problème.

0
Z Wu