Reimplement InstanceType<T>
TypeScript built-in Utility Type を自前で再実装し、テストを記述して理解を深める。
Original Definition (src/lib/es5.d.ts)
/**
* Obtain the return type of a constructor function type
*/
type InstanceType<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R ? R : any;
学習ポイント
- コンストラクタの 戻り値 = インスタンスの型
ReturnType<T> のコンストラクタ版
ConstructorParameters<T> との対の関係
やること
Reimplement
InstanceType<T>TypeScript built-in Utility Type を自前で再実装し、テストを記述して理解を深める。
Original Definition (src/lib/es5.d.ts)
学習ポイント
ReturnType<T>のコンストラクタ版ConstructorParameters<T>との対の関係やること
packages/types/に再実装ファイルを作成expectTypeOfを使ったテストを記述Date,Error等)のケースをカバー