有条件地在TypeScript中添加一个属性
问题描述:
我想有条件地添加属性到一个对象(或者我的意思是一个类 - 我不确定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;
}
};
答
使用的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',
};
}
}
}
“也许我的意思是一类”。你的目标是什么?类和对象与其他基于类的语言中的概念相同。你真的想在构建类定义时使用条件逻辑吗? – Alex
“你真的想在构建类定义时使用条件逻辑吗?”是。我来自JavaScript(我对它很有经验)。我是TypeScript的初学者。 – Ben
我很确定这是不可能的,但是你能否详细说明你的用例?我并不完全相信你实际上在寻找像C#预处理指令这样的东西:) – Alex