27

我在文件中有以下功能:

function alertWin(title, message) {
   .......
   .......
}

在另一个打字稿文件中,我有:

function mvcOnFailure(message) {
    "use strict";
    alertWin("Internal Application Error", message);
}

我收到一条错误消息,说当前范围内不存在“alertwin”。

解决这个问题的方法是让我在另一个文件中定义这个函数然后引用它吗?如果是这样,那么定义会是什么样子?

4

3 回答 3

27

您可以这样做(假设标题和消息都应该是字符串):

interface alertWinInterface{
    (title:string, message: string):any;
}

declare var alertWin: alertWinInterface;

您可以将其放在同一个文件中,或者将其放在您导入的单独环境定义文件 (.d.ts) 中:

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

或者,您可以只导入具有实际函数定义的其他文件,但您不会获得静态类型支持。

于 2012-10-26T13:25:18.050 回答
20

这种方法似乎对我有用:

declare function alertWin(title: string, message: string) : void;

和马特的解决方案一样,你把它放在一个定义文件中,然后引用它。

于 2013-06-11T23:46:56.070 回答
4

您只需要通过添加对文件顶部的引用来告诉工具和编译器在哪里可以找到您的函数:

/// <reference path="fileWithFunction.ts" />

此外,您的所有参数当前都键入为any,如果您愿意,可以显式键入它们。

function alertWin(title: string, message: string) : void {
   //.......
   //.......
}
于 2012-10-26T13:40:15.973 回答