2016-10-28 9 views
2
私はそれらをすべて書き出すのではなく、これらのプロパティを宣言するためのより良い方法はありそう

角度2の成分

export class HeroComponent implements OnInit { 

    hero1: 
    hero2: 
    hero3: 
    hero4: 
    ... 
    hero999: 

} 

のようなコンポーネント内のいくつかのプロパティを宣言したい

内の動的プロパティを宣言?

+1

あなたはすべての値を保持するために、単一の配列プロパティを使用することができます。 あなたは、インターフェイスで許可し、これに類似し、それを使用しているオプションを定義することができます。 –

+0

例を挙げることはできますか? – locnguyen

+0

また、すべてのプロパティを保持する新しいクラスを作成し、新しいインスタンスを初期化してそのクラスを使用することもできます –

答えて

2
export class HeroComponent implements OnInit { 
    heroes: any[] = []; 

    constructor() { 
    for(var i = 1; i < 1000; i++) { 
     this.heroes.push('hero'+i); 
    } 
    } 
} 
+0

エラー'原因: '未定義のpush'プロパティを読み取ることができず、 'hero:hero [];'を 'hero: [] = []; 'エラーが発生しました:ヒーローが定義されていません。 ' – locnguyen

+0

残念ですが、初期化' = [] 'を忘れました。あなたが何を配列に保存したいのか分かりません。私は 'Hero'のインスタンスが' class Hero {} 'のために存在し、インポートされる必要があると仮定します。それはあなたがこのエラーを取得しない場合。 –

+1

は 'this.hero.push( 'hero' + i);'のようなものを探していました。 – locnguyen

0

より洗練されたプロパティの書き込み方法は、タイスクリプトインターフェイスを利用することです。

export class HeroComponent implements OnInit { 
    private options: Options 

    constructor() { 
     this.options = { 
     option1 : 'val1', 
     option3 : [1,2] 

     } 
    } 

} 

export interface Options { 
    option1: string, 
    option2?: boolean, 
    option3: number[] 
}