我在一个打字稿类中有一个字段,它有一个装饰器A,但我想在某个特定环境中运行时将装饰器从A更改为B. 这可以用打字稿来实现吗?
class SampleClass {
@DecoratorA
sampleField;
constructor() {
if(condition) {
// change DecoratorA to DecoratorB
}
}
}
是否可以根据某些条件将DecoratorA更改为构造函数中的DecoratorB?
答案 0 :(得分:4)
正如评论中建议的那样,创建一个decorator factory:
function AorB() {
return condition ? DecoratorA : DecoratorB;
}
并应用它(注意括号):
class SampleClass {
@AorB()
sampleField;
}