簡體   English   中英

將屬性添加到類實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM