【发布时间】:2012-10-08 18:27:53
【问题描述】:
我一直在使用 TypeScript 中带有构造签名的接口,当以下类型检查失败时,我有点困惑:
class Foo {
constructor () {
}
}
interface Bar {
new(): Bar;
}
function Baz(C : Bar) {
return new C()
}
var o = Baz(Foo);
类型错误是:
提供的参数与调用目标的任何签名都不匹配: 'new() => Foo' 和 'Bar' 类型的构造签名是 不兼容:类型“Bar”需要构造签名,但类型 'Foo' 缺少一个 (C: Bar) => Bar
Foo 的构造函数的类型是 () => Foo,这就是我认为 Bar 所说的。我在这里遗漏了什么吗?
【问题讨论】:
标签: typescript