TypeScriptにおけるジェネリクスでのクラス型の使用

ジェネリック型としてクラスも使用できます。 ただし、そのコンストラクタを使用してクラスの型を 指定する必要があります。したがって、 パラメータ type:T の代わりに、 type: {new(): T;} と指定する必要があります。 クラス User から新しいユーザーを作成する関数を 作ってみましょう。

typescriptfunction getUser <T> (type: { new (): T; }): T {
  return new type();
}

class User {
  constructor() {
    console.log('You create a new user!');
  }
}

let user: User = getUser(User);

実行結果:

typescript'You create a new user!'