web-dev-qa-db-fra.com

Référence du fichier javascript à l'intérieur du manuscrit

Je voudrais utiliser une fonction javascript dans un fichier TypeScript. Comment référencer le fichier javascript contenant cette fonction dans le fichier TypeScript?

J'ai essayé 

<reference path="../libs/myjsfile.js" />

cela amène une erreur lors de la construction comme: Cannot resolve referenced file: ../libs/myjsfile.js

31
user1160771

Bien que les deux réponses ci-dessus fonctionnent pour une API de variable petite ou simple, la bonne réponse consiste à écrire un fichier de déclaration de type pour votre fichier JavaScript. 

Le fichier de déclaration de type de votre exemple s'appelle myjsfile.d.ts, où le suffixe .d.ts indique au compilateur TypeScript qu'il analyse un fichier de déclaration. Si vous utilisez Visual Studio, votre fichier de déclaration sera reconnu par le compilateur TypeScript tant qu'il se trouvera quelque part (n'importe où) dans le projet sur lequel vous travaillez.

Les fichiers de déclaration stockent des métadonnées sur les variables, fonctions et objets JavaScript afin que le compilateur TypeScript puisse faire son travail. S'il s'avère que votre fichier JavaScript est une bibliothèque ou une structure couramment utilisée, DefinitelyTyped est sans aucun doute le meilleur endroit pour trouver le fichier de définition dont vous avez besoin.

Si votre JavaScript est votre propre travail ou est moins connu, vous devrez écrire votre propre fichier de déclaration de type. Voir la section Ecriture des fichiers .d.ts dans Le manuel TypeScript

Si le fichier de déclaration de nom semble intimidant, ne vous inquiétez pas: ils sont beaucoup plus faciles à écrire que les programmes. N'oubliez pas non plus que vous n'avez pas besoin de spécifier toutes les métadonnées de votre fichier JavaScript, mais uniquement les fonctionnalités dont vous avez besoin.

Faites-moi savoir si vous avez besoin d'aide!

37
Doug

Vous devez simplement indiquer au compilateur que la méthode existe en dehors de TypeScript:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void;

Assurez-vous que le site Web charge tous les fichiers nécessaires, les fichiers js normaux et les fichiers js générés par le compilateur TypeScript.

7
A. K-R

Vous pouvez voir la dernière version de la documentation TypeScript dans TypeScript Manuel sur GitHub :

De plus, je vous recommande l’utilitaire tsd pour rechercher et installer des fichiers de définition TypeScript directement à partir du répertoire DefinitelyTyped . Ce référentiel contient les fichiers de définition * .d.ts pour les bibliothèques javascript les plus courantes.

0
Roman

cela amène une erreur lors de la construction comme: Impossible de résoudre le fichier référencé: ../libs/myjsfile.js

Les balises de fichier de référence sont pour TypeScript pas JavaScript. Vous devriez charger JavaScript en utilisant une balise script dans votre page (ou quelque chose comme requirejs). 

Pour utiliser le code JavaScript de TypeScript, vous devez declare/l'API du code javascript que vous souhaitez utiliser pour la consommation TypeScript (comme l'a souligné AKR). 

0
basarat