我想知道是否有一種重載打字稿中的對象的函數屬性的簡單方法。例如:是否有可能在typescript中重載對象函數屬性?
interface Doable {
do(s: number): number;
do(s: string): string;
}
let obj: Doable = {
do(s: number): number;
do(s: string): string;
do(s: number | string) {
return s;
}
}
編譯器在這裏會產生一個錯誤,抱怨do
屬性是重複的。沒有使用any
是否有另一種聲明函數的方法?
我已經知道這個實現將起作用。
let obj: Doable = {
do(s: any) {
return s;
}
}
感謝您的詳細解釋:) – eAbi
這對於具有不同參數數量的過載是不正確的。也真正的重載返回正確的類型取決於哪個簽名匹配,而不是任何哪種丟失所有類型的安全 –
我站在更正,雖然你的例子沒有顯示它,這對於不同數量的參數完全適用,並且任何isn在使用物體時不顯示。我的假設很糟糕,我讀得太快,並認爲你只是提出了原始聯盟類型。 –