2
打字稿編譯器接受以下代碼而不發出錯誤信號:打字稿:在繼承的方法參數類型應被推斷
class S {
f(p: number) {
console.log(`${p + 1}`);
}
}
class C extends S {
f(p) {
super.f(p)
}
}
let a: C = new C();
let b: C = new C();
a.f(41); // -> 42
b.f('x'); // -> x1
打字稿是一個靜態類型語言,不應編譯器推斷的p
參數類型在繼承的方法f
到number
?爲什麼錯誤的鍵入的字符串值的賦值未被捕獲,產生奇怪的行爲?
謝謝,瑞安,我同意替換是有效的更一般的參數。雖然,恕我直言,調用'super.f(p)'不應該被允許具有未定義類型的參數(_any_)。有沒有辦法強制編譯器進行這種類型檢查? –