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