有条件地在TypeScript中添加属性

时间:2016-11-17 19:50:56

标签: 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;
    }
};

1 个答案:

答案 0 :(得分: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',
            };
        }
    }
}