一个类被装饰为具有 foo
静态属性:
interface IFoo {
foo: boolean;
}
function foo<T>() {
return (Class: T): T & IFoo => Object.assign(Class, { foo: true });
}
@foo<typeof Bar>()
class Bar { }
const Baz: IFoo = Bar;
console.log(Baz.foo);
这会导致错误:
类型'typeof Bar'不能指定为'IFoo'类型 .
似乎TypeScript输入系统忽略了 Bar
被装饰的事实 .
我知道装饰器存在某些类型问题 . 这里有什么变通方法?
1 回答
Typescript不允许修饰符修改修饰类的结构 . 但是你可以使用函数taht获取类并修改它: