ハンバーガーメニュー

Menu

← Quiz 一覧に戻る

Conditional Types

TypeScriptのconditional typeにおける`extends`はどのような役割を持ち、型パラメータの制約(`<T extends U>`のような形)で使われる`extends`とどのような関係にあるかを説明してください。

🟢 基本👑 Master2回出題済み記事を読む →

模範解答

conditional typeにおける`T extends U ? X : Y`の`extends`は、「TがUに代入可能かどうか」を判定するための条件式として機能します。これは型パラメータ宣言の`<T extends U>`で使われる`extends`と同じ代入可能性のルールに基づいており、どちらも「TがUに収まるか」を基準にしている点で一貫しています。

🔑 conditional type内の`extends`が「代入可能性の判定」であり、型制約の`extends`と同じルールで解釈できることを理解しているかを問う。


回答履歴 (2回)

#2   2026.03.08正解 (5/5)

あなたの回答

どちらも同じ。extendsは代入可能性を検証しているに過ぎないので、conditional typeではある型に対して別の方が代入可能かどうかで返り値を変えており、型パラメータでも代入可能条件を指定している。

フィードバック

conditional type でも型パラメータ制約でも、`extends` を「代入可能性の判定」として理解できており、模範解答と整合しています。conditional type で返り値の型がその判定結果に応じて変わる点への言及も適切です。両者が同じ代入可能性のルールに基づいているという関係性も正しく説明できています。

#1   2026.03.19正解 (4/5)

あなたの回答

同じものと考えて良い。 どちらも代入可能性の検証として使用される。 conditional typeでは代入が可能な場合にtrueを返すことによって処理を分岐させる事が出来る。 型パラメータの制約でも代入が可能である事を保証するために使用され、柔軟な型を受け入れる事が出来る様になる

フィードバック

conditional type における `extends` と型パラメータ制約における `extends` が、どちらも代入可能性の判定に基づいている点を指摘できており、模範解答の趣旨と概ね一致しています。「どちらも代入可能性の検証として使用される」という説明は重要ポイントを押さえています。補足すると、conditional type ではその判定結果に応じて `X` または `Y` のどちらの型を採用するかを分岐させる、という形で利用されます。