ジェネリック関数:型パラメーター
関数に型パラメーターを追加して再利用性を高めます。
「ジェネリック関数:型パラメーター」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。
ようこそ
ジェネリクスが解決する問題
// Without generics — loses type info
function first(arr: any[]): any { return arr[0]; }
// With generics — type-safe
function first<T>(arr: T[]): T { return arr[0]; }型パラメーターの構文
function identity<T>(value: T): T {
return value;
}
const n = identity(42); // T is number
const s = identity('hello'); // T is stringジェネリック関数の型推論
function wrap<T>(val: T): T[] { return [val]; }
const nums = wrap(42); // T inferred as number -> number[]
const strs = wrap('hi'); // T inferred as string -> string[]複数の型パラメーター
function pair<A, B>(a: A, b: B): [A, B] {
return [a, b];
}
const p = pair(1, 'hello'); // [number, string]ジェネリックな配列関数
function filterNull<T>(arr: (T | null)[]): T[] {
return arr.filter((x): x is T => x !== null);
}型引数の明示的な指定
function create<T>(): T | null { return null; }
const user = create<User>(); // T cannot be inferred — must be explicitジェネリクスとanyの違い
function echo<T>(val: T): T { return val; }
const n: number = echo(42); // OK
// const s: string = echo(42); // Error — T is numberジェネリックなアロー関数
const identity = <T>(val: T): T => val;
// In .tsx files:
const identity2 = <T,>(val: T): T => val;異なる型の返却
function mapArray<T, U>(arr: T[], fn: (item: T) => U): U[] {
return arr.map(fn);
}
const lengths = mapArray(['hello', 'world'], s => s.length);
// lengths: number[]デフォルト値を持つジェネリックパラメーター
function createList<T = string>(): T[] { return []; }
const list = createList(); // T defaults to string確認問題
まとめ
よくある質問
「ジェネリック関数:型パラメーター」レッスンは無料ですか?
はい。「ジェネリック関数:型パラメーター」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。
「ジェネリック関数:型パラメーター」で何を学びますか?
関数に型パラメーターを追加して再利用性を高めます。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「ジェネリック関数:型パラメーター」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ジェネリック関数:型パラメーター
- ジェネリックInterfaceと型エイリアス
- extendsによるジェネリック制約
- デフォルト型パラメーター