【发布时间】:2018-02-03 17:13:05
【问题描述】:
我想创建一个装饰器,为类添加方法。
export function Deco() {
return function<T extends { new (...args: any[]): {} }>(constructor: T) {
constructor.prototype.someMethod = function() {
};
};
}
@Deco()
class Test {
}
问题是当我尝试调用添加的方法时,我收到打字稿错误:
属性 someMethod 在类型 Test 上不存在。
const test = new Test();
test.someMethod();
我该如何解决这个问题?
【问题讨论】:
-
大概是因为您没有将装饰器的返回输入为
T & SomeMethodHaver或其他任何内容。 -
你能举个例子吗?
标签: typescript