我正在尝试使用TypeScript Decorator将具有动态值的属性添加到类中。 我使用TS文档中的以下代码:
function classDecorator<T extends {new(...args:any[]):{}}>(constructor:T) {
return class extends constructor {
newProperty = "new property";
hello = "override";
}
}
这是有效的,但这些属性的价值不是动态的。我们可以将参数传递给此函数吗?像那样:
@classDecorator('myArgument')
之后我想在html文件中使用myArgument
。
答案 0 :(得分:2)
Decorator是表达式,返回函数。表达式可以是函数名称本身(我们使用它像@classDecorator
),并且可以调用另一个函数,它返回装饰器函数(然后我们像@classDecorator('myArgument')
一样使用它)。第二种方法如下:
function classDecorator<T extends {new(...args:any[]):{}}>(myArgument:
string) {
return (constructor:T) => {
return class extends constructor {
newProperty = "new property";
hello = "override";
}
}
}