【发布时间】:2019-06-10 12:34:29
【问题描述】:
我在从类构造函数实例访问静态成员时遇到问题。代码有效,但类型信息错误。
var ctor: { new (...args: any[]): Foo } = undefined as any;
function decorator() {
return function <T extends { new (...args: any[]): Foo }>(constructor: T) {
ctor = constructor;
return constructor;
}
}
@decorator()
class Foo {
static Func = () => console.log("Hi");
}
Foo.Func();
ctor.Func();
Foo.prototype.constructor.Func();
在上面的例子中调用Foo.Func 是可以的。第二个电话告诉我没有Func 成员。第三个选项应该和第二个基本相同,但是由于prototye has 是any 类型,所以类型信息丢失了。
有没有办法正确输入ctor,以便在上面看到静态成员?
【问题讨论】:
标签: typescript types constructor static