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

27 javascript typescript

我在文件中有以下功能:

function alertWin(title, message) {
   .......
   .......
}
Run Code Online (Sandbox Code Playgroud)

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

function mvcOnFailure(message) {
    "use strict";
    alertWin("Internal Application Error", message);
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误,说当前范围内不存在"alertwin".

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

Mat*_*and 27

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

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

declare var alertWin: alertWinInterface;
Run Code Online (Sandbox Code Playgroud)

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

/// <reference path="myDefinitions.d.ts" />
Run Code Online (Sandbox Code Playgroud)

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


Nit*_*mer 18

这种方法似乎对我有用:

declare function alertWin(title: string, message: string) : void;
Run Code Online (Sandbox Code Playgroud)

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