2015-11-13 33 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 
} 

如果任何函數有必要的參數或返回類型,您必須更改此定義。因爲你說過簡化了它,所以我無法提供所需的確切定義。

相關問題