TypeScriptにおけるジェネリクスでのクラス型の使用
ジェネリック型としてクラスも使用できます。
ただし、そのコンストラクタを使用してクラスの型を
指定する必要があります。したがって、
パラメータ type:T の代わりに、
type: {new(): T;} と指定する必要があります。
クラス User から新しいユーザーを作成する関数を
作ってみましょう。
function getUser <T> (type: { new (): T; }): T {
return new type();
}
class User {
constructor() {
console.log('You create a new user!');
}
}
let user: User = getUser(User);
実行結果:
'You create a new user!'