Comment puis-je déclarer une fonction à partir d'un autre fichier en Typescript?
J'ai la fonction suivante dans un fichier:
function alertWin(title, message) {
.......
.......
}
Dans un autre fichier typescript j'ai:
function mvcOnFailure(message) {
"use strict";
alertWin("Internal Application Error", message);
}
Je reçois une erreur disant que "alertwin" n'existe pas dans la portée actuelle.
Est-ce la façon de résoudre cela pour moi de définir cette fonction dans un autre fichier, puis de la référencer? Si oui, à quoi ressemblerait la définition?
3 réponses
Vous pouvez le faire (en supposant que title et message sont tous deux supposés être des chaînes):
interface alertWinInterface{
(title:string, message: string):any;
}
declare var alertWin: alertWinInterface;
Vous pouvez mettre ceci dans le même fichier, ou le mettre dans un fichier de définitions ambiantes séparé (.D. ts) que vous importez:
/// <reference path="myDefinitions.d.ts" />
Ou, vous pouvez simplement importer l'autre fichier qui a la définition de la fonction réelle, mais vous n'obtiendrez pas de support de frappe statique.
Cette approche semble fonctionner pour moi:
declare function alertWin(title: string, message: string) : void;
Et comme avec la solution de Matt, vous le mettez dans un fichier de définition, puis vous le référencez.
Vous avez juste besoin de dire aux outils et au compilateur où trouver votre fonction, en ajoutant une référence en haut de votre fichier:
/// <reference path="fileWithFunction.ts" />
De plus, tous vos paramètres sont actuellement tapés comme any
, Vous pouvez les taper explicitement si vous le souhaitez.
function alertWin(title: string, message: string) : void {
//.......
//.......
}