使模块可调用

bas*_*rat 6 typescript

打字稿中的模块与接口兼容.例如以下内容有效:

module M{
    var s = "test"
    export function f(){
        return s;
    }   
}

interface ITest{
    f():string;
}

var x:ITest = M;
Run Code Online (Sandbox Code Playgroud)

但是,是否可以在模块中具有可调用签名?具体如何编写与以下界面兼容的模块:

interface ITest{
    ():string;
}
Run Code Online (Sandbox Code Playgroud)

MiM*_*iMo 2

不,这是不可能的。唯一可以匹配调用签名的实体是函数

interface ITest{
    ():string;
}

var x:ITest = function() {return "";}
var y:ITest = () => "";
Run Code Online (Sandbox Code Playgroud)