2015-11-13 57 views
0

在常规的JS,你可以做这样的事情:在TypeScript中声明一个函数本身就是函数调用的结果?

function ConstructorFunc() { 

    function innerFunc(){ console.log("hello"); } 

    // Modify innerFunc prototype here... 

    return innerFunc; 

} 

var MyFunc = ConstructorFunc(); 

MyFunc(); 
> hello 

,但我怎么能做到这一点的打字稿为以下不起作用

export function MyFunc = ConstructorFunc(); 

注:在我的实际项目ConstructorFunc来来自第三方图书馆,因此无法更改,为了简化问题,我只是简化了它。

+0

如果函数实际上来自第三方非TypeScript库,那么这是不是意味着你只想制作一个.tsd(TypeScript Definition)文件,所以TypeScript知道它存在?希望我不会误解 – Katana314

回答

0

如何

var MyFunc = ConstructorFunc(); 
export MyFunc; 
0

为您的第三方库,指定ConstructorFunc类型的接口。像这样:

interface ThirdPartyLibraryName { 
    ConstructorFunc?():() => any 
} 

如果任何函数有必要的参数或返回类型,您必须更改此定义。因为你说过简化了它,所以我无法提供所需的确切定义。