私は 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 ) => バー
Foo のコンストラクターの型は () => Foo であり、それが Bar が言っていることだと思いました。ここで何か不足していますか?