この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - TypeScript タイプパズル
13. InstanceType<T>を実装する

解答例:

type MyInstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;

説明:

  • MyInstanceTypeは型引数Tnew (...args: any) => anyという型制約を持つと定義されています。
  • T extends new (...args: any) => infer Rは、Tがコンストラクタ関数である場合にRに対応する型を推論する型パターンです。
  • inferを使うことで、Rに型推論を依頼しています。
  • RTのインスタンスの型に対応するため、MyInstanceTypeRを返します。
  • Tがコンストラクタ関数でない場合、MyInstanceTypeanyを返します。