2
當我玩過TypeScript語言時,我對類成員速記語法連同繼承感到困惑。假設你有兩個語義intendical類以下有效打字稿,並與一個屬性的接口:TypeScript類成員速記bug?
class Person1 implements HasName {
constructor(public name: string) {}
}
class Person2 implements HasName {
public name : string;
constructor(name: string) {
this.name = name;
}
}
interface HasName {
name : string;
}
現在,如果你嘗試將「名」屬性在HasName接口重新命名,只有在PERSON2成員將是正確的重命名和Person1你會得到一個TypeScript錯誤,說它不再實現HasName。
這種行爲的地方,它不會是可以安全地使用簡寫語法類成員: -/
這是一個錯誤或預期?就我而言,重構操作永遠不會導致編譯器錯誤。它應該重命名Person1中的短手成員,這聽起來像是一個bug。
+1 - 編譯器正確識別它,所以TypeScript語言或編譯器中沒有錯誤。 – Fenton
我沒有使用視覺工作室,我只是在他們的頁面上打字遊戲。此外,如果您單擊HasName界面中的名稱字段,您將看到Person1中的名稱字段不會像其他名稱成員那樣突出顯示。 – user1823768
這是一回事。你所描述的是一個被重寫的工具,唯一的區別就是它在瀏覽器中。這是一個錯誤,但不是語言或編譯器。 – Rafal