我一直在使用TypeScript中的构造签名接口,当下面的键入检查失败时,我变得有点困惑:
class Foo {
constructor () {
}
}
interface Bar {
new(): Bar;
}
function Baz(C : Bar) {
return new C()
}
var o = Baz(Foo);
Run Code Online (Sandbox Code Playgroud)
类型错误是:
提供的参数与调用目标的任何签名都不匹配:构造类型'new()=> Foo'和'Bar'的签名不兼容:类型'Bar'需要构造签名,但Type'Foo'缺少一个(C:Bar) )=>吧
Foo的构造函数的类型是()=> Foo,这就是我认为Bar所说的.我在这里错过了什么吗?
typescript ×1