以下是TypeScript文档中装饰器的一些代码:
function classDecorator<T extends {new(...args:any[]):{}}>(constructor:T) {
return class extends constructor {
newProperty = "new property";
hello = "override";
}
}
@classDecorator
class Greeter {
property = "property";
hello: string;
constructor(m: string) {
this.hello = m;
}
}
console.log(new Greeter("world"));
但是,如果您尝试使用newProperty
,则会出现转发错误:
属于'Greeter'的属性'newProperty'。
如何键入此内容,以便转换器知道newProperty
实际存在?