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?

22
demandé sur Mark Pieszak - DevHelp.Online 2012-10-26 17:10:27

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.

25
répondu Matt Burland 2012-10-26 13:25:18

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.

14
répondu Nitzan Tomer 2013-06-11 23:46:56

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 {
   //.......
   //.......
}
4
répondu user75525 2012-10-26 13:40:15