2017-07-03 8 views
0

typescriptのクラスにプロパティを追加するにはどうすればよいですか?これを成し遂げるためにどのようにtypescriptでクラスにプロパティを動的に追加するにはどうすればよいですか?

export class UserInfo { 
    public name:string; 
    public age:number; 
} 

let u:UserInfo = new UserInfo(); 
u.name = 'Jim'; 
u.age = 10; 
u.address = 'London'; // Failed to compile. Property 'address' does not exist on type 'UserInfo'. 

あなたはインデックスの署名に使用でき
+0

達成しようとしていることは何ですか?タイプスクリプトの全目的は、驚きを持たないように、明確なインターフェースとクラスを持つことです。 UserInfoに(オプションの) 'address'プロパティが含まれていないのはなぜですか? – k0pernikus

+1

[TypeScriptのオブジェクトにプロパティを動的に割り当てる方法は?](https://stackoverflow.com/questions/12710905/how-do-i-dynamically-assign-properties-to-an-object-in) -typeescript) – k0pernikus

+0

@ k0pernikus実行時に、私は他のプロパティを追加したいと思います。 – niaomingjian

答えて

0

export class UserInfo { 
    [index: string]: any; 
    public name: string; 
    public age: number; 
} 

const u: UserInfo = new UserInfo(); 
u.name = "Jim"; 
u.age = 10; 
u.address = "London"; 

console.log(u); 

ウィル出力:

$ node src/test.js 
UserInfo { name: 'Jim', age: 10, address: 'London' } 

しかし、それによって、あなたが厳しいtypechecksを失うされていることに注意して、弱で起こりがちな、言語を入力した潜在的なバグを紹介します。

関連する問題