2014-05-22 48 views
0

比方說,我有這樣的事情:打字稿中有多個構造函數的優點是什麼?

class MyClass { 
    constructor(s: number); 
    constructor(s: string); 
    constructor(s: any) { 

    } 
} 

什麼那些最初的兩個聲明給我買,因爲第三個現在允許任何在傳遞可以在第三(實際)一個被設爲不公開?它看起來像私人在構造函數上被忽略。

+0

我真的很好奇你在發佈這個問題之前所嘗試的,因爲你想要的行爲已經是存在的行爲。在Playground中編寫'新的MyClass(窗口)'並且看到這是一個錯誤?你平常的探索過程是什麼? –

+1

@RyanCavanaugh我以爲我做了,它讓我使用「s:any」構造函數。但是我也遇到了WebStorm沒有識別錯誤的問題,所以它可能是WebStorm沒有識別它。 –

回答

1

執行簽名,因爲它被稱爲,已不可見。你不必做任何事情來使其成爲'私人'。只要函數或構造函數被重載,調用者就只能看到重載。

var x = new MyClass({n: 3}); // This is an error.