[英]Add property to a class instance
讓我們考慮以下代碼:
class MyClass{
x: number;
}
const inst = new MyClass();
inst.x = 8;
inst.y = 9;
inst["z"] = 10;
Typescript編譯器抱怨在MyClass
實例中添加y
屬性。 z
屬性不是這種情況。
該行為是否基於Typescript試圖為類的所有實例或其他實例保持相同形狀的事實?
實際上,我正在使用Angular,並且在嘗試將值分配給先前未定義的屬性時,在組件內部出現了上述行為,例如
this.prop = 5;
好吧,創建類和使用TypeScript的想法是將對象屬性限制為在其上定義的屬性。
inst [“ z”]之所以有效,是因為您吸引了普通的javascript行為-TypeScript允許的行為。
但是,如果確實需要允許您的類接收新屬性,則可以將其更改為:
class MyClass {
[key: string]: any;
x: number;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.