如何从Typescript中的另一个文件声明一个函数?

时间:2012-10-26 13:10:27

标签: javascript typescript

我在文件中有以下功能:

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

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

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

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

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

3 个答案:

答案 0 :(得分:26)

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

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

declare var alertWin: alertWinInterface;

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

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

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

答案 1 :(得分:16)

这种方法似乎对我有用:

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

与Matt的解决方案一样,您将其放在定义文件中,然后引用它。

答案 2 :(得分:4)

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

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

此外,您的所有参数当前都输入为any,如果您愿意,可以明确输入。

function alertWin(title: string, message: string) : void {
   //.......
   //.......
}