

ジェネリクスを `new` するには `{new(): T}` すればよいということを、以下のドキュメントで知りました。

<https://github.com/Microsoft/TypeScript/wiki/FAQ#why-cant-i-write-typeof-t-
new-t-or-instanceof-t-in-my-generic-function>

しかし、ジェネリクスのクラスを引数に取るとき、デフォルト引数をとる方法がわかりません。

[code]

    class Hoge {
      constractor() {}
    }
    
    function hoge<T extends Hoge>(
      hogeClass: {new(): T} = Hoge // この = Hoge が typeof Hoge だと思われてしまう
    ) {}
    
[/code]

以上が通したいコード例です。ご存知の方はお教えいただけると助かります。


CC BY-SA 4.0
2021-12-20T13:33:26.440
85240
2021-12-20T13:33:26.440
50584
question
typescript
ジェネリクスのクラスを引数に取るとき、デフォルト引数を取る方法を教えてください。