ジェネリック制約:型パラメーターの絞り込み
extendsを使ってジェネリクスに形状の要件を課します。
「ジェネリック制約:型パラメーターの絞り込み」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。
ようこそ
制約の復習
function len<T extends { length: number }>(val: T): number {
return val.length;
}特定のメソッドへの制約
interface Stringable { toString(): string; }
function stringify<T extends Stringable>(val: T): string {
return val.toString();
}制約からの推論
function pluck<T, K extends keyof T>(items: T[], key: K): T[K][] {
return items.map(item => item[key]);
}
const names = pluck(users, 'name'); // string[]高カインド型制約(シミュレーション)
プリミティブ型への制約
type Primitive = string | number | boolean | bigint | symbol | null | undefined;
function isPrimitive<T extends Primitive>(val: T): true { return true; }再帰的な制約
interface Comparable<T> { compareTo(other: T): number; }
function sort<T extends Comparable<T>>(items: T[]): T[] {
return [...items].sort((a, b) => a.compareTo(b));
}デフォルト値付きの制約
function process<T extends object = Record<string, unknown>>(data: T): void {
console.log(Object.keys(data));
}T extends Record<string, unknown>
function getValue<T extends Record<string, unknown>>(obj: T, key: string): unknown {
return obj[key];
}戻り値の型における制約の推論
function firstKey<T extends object>(obj: T): keyof T {
return Object.keys(obj)[0] as keyof T;
}NoInferユーティリティ(TS 5.4)
function createState<T>(initial: T, fallback: NoInfer<T>): T {
return initial ?? fallback;
}確認問題
まとめ
よくある質問
「ジェネリック制約:型パラメーターの絞り込み」レッスンは無料ですか?
はい。「ジェネリック制約:型パラメーターの絞り込み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。
「ジェネリック制約:型パラメーターの絞り込み」で何を学びますか?
extendsを使ってジェネリクスに形状の要件を課します。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ジェネリック制約:型パラメーターの絞り込み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- keyofとインデックスアクセス型
- ジェネリック制約:型パラメーターの絞り込み
- 条件型:T extends U ? X : Y
- 分配条件型