2016-11-17 18 views
1

オブジェクトにプロパティを条件付きで追加したい(あるいは、クラスを意味するかもしれません - TypeScriptの実際のセマンティクスが不明です)。条件付きでTypeScriptにプロパティを追加する

import IMetadata from './metadata-interface'; 

export default class MetaData { 

    [idx: string]: IMetadata; 

    public 'foo' = { 
     name: 'foo', 
    } as IMetadata; 

    public 'bar' = { 
     name: 'bar', 
    } as IMetadata; 
}; 

ただし、条件付きでオブジェクトにバーを追加するにはどうすればよいですか?

export default class MetaData { 

    [idx: string]: IMetadata; 

    public 'foo' = { 
     name: 'foo', 
    } as IMetadata; 

    if(condition) { 
     public 'bar' = { 
      name: 'bar', 
     } as IMetadata; 
    } 
}; 
+0

を "または多分私はクラスを意味する" 私のような何かを行うことができます。あなたの目標は何ですか?クラスとオブジェクトは他のクラスベースの言語と同じ概念です。あなたは本当にクラス定義を構築する際に条件付き論理を持ちたいのですか? – Alex

+0

"クラス定義を構築する際に条件付き論理を実際に使いたいですか?"はい。私はJavaScriptから来ています(私はそれをかなり経験しています)。私はTypeScriptの初心者です。 – Ben

+0

これは可能ではないと確信していますが、ユースケースについて詳しく説明できますか?私は完全にあなたが実際にC#プリプロセッサディレクティブのようなものを探しているとは確信していません:) – Alex

答えて

3

ifのステートメントを使用します:

export default class MetaData { 

    [idx: string]: IMetadata; 

    public 'foo' = { 
     name: 'foo', 
    } as IMetadata; 

    public 'bar'?: IMetadata; 

    constructor(condition: boolean) { 
     if (condition) { 
      this.bar = { 
       name: 'bar', 
      }; 
     } 
    } 
} 
関連する問題