TypeScriptのジェネリクスに関する練習問題
TypeScriptコースの一部として、ジェネリクスに関する実践的な練習問題を16問用意しています。 基礎から応用まで段階的に学習できるよう構成されています。
学習を開始する準備ができました
下記の練習問題から始めて、段階的にスキルアップしていきましょう
値を配列に変換するジェネリック関数はどれですか?
約3分
以下のコードで、変数`pair`の型として正しいものはどれですか? ```typescript function makePair<T, U>(first: T, second: U): [T, U] { return [first, second]; } const pair = makePair(42, "Hello"); ```
約3分
ジェネリクスを使わずに同じ処理を複数の型に対応させる場合の問題点として、**最も深刻**なものはどれですか?
約3分
TypeScriptのジェネリクスで最も一般的に使用される型パラメータの名前は何ですか?
約3分
配列が空かどうかを判定するジェネリック関数の実装として正しいものはどれですか?
約3分
型制約`extends`を使った以下のコードで、受け付けることができない型はどれですか? ```typescript function convertToString<T extends string | number>(value: T): string { return String(value); } ```
約3分
二つの値が同じかどうかを判定するジェネリック関数で、引数の型定義として最も適切なものはどれですか?
約3分
以下のジェネリック関数において、型パラメータはどこで宣言されていますか? ```typescript function getValue<T>(input: T): T { return input; } ```
約3分
ジェネリクスを使用する主なメリットとして**最も重要**なものはどれですか?
約3分
以下のコードで、`newNumbers`変数の型として推論されるものはどれですか? ```typescript function addItem<T>(arr: T[], newItem: T): T[] { return [...arr, newItem]; } const originalNumbers = [1, 2, 3]; const newNumbers = addItem(originalNumbers, 4); ```
約3分
ジェネリクスを使用する主な利点として**最も重要**なものはどれですか?
約3分
以下のコードを実行した場合、TypeScriptが自動的に推論する型は何ですか? ```typescript function getFirst<T>(arr: T[]): T { return arr[0]; } const result = getFirst(["Hello", "World"]); ```
約3分
以下のオブジェクトプロパティ取得関数の空欄に入る適切な型制約はどれですか? ```typescript function getProperty<T, K extends ______>(obj: T, key: K): T[K] { return obj[key]; } ```
約3分
複数の型パラメータを使用するジェネリック関数の正しい定義はどれですか?
約3分
配列の最後の要素を取得するジェネリック関数の戻り値の型として最も適切なものはどれですか? ```typescript function getLast<T>(arr: T[]): ??? { return arr[arr.length - 1]; } ```
約3分
以下のジェネリック関数で、型パラメータ`T`の役割として正しいものはどれですか? ```typescript function addItem<T>(arr: T[], newItem: T): T[] { return [...arr, newItem]; } ```
約3分
💡 学習のコツ
1
問題を順番に解く
基礎から応用へと段階的に構成されているため、順番に取り組むことをお勧めします
2
解説をしっかり読む
正解・不正解に関わらず、解説を読んで理解を深めましょう
3
復習で定着させる
間違えた問題は後日再チャレンジして、知識の定着を確認しましょう
プレミアムプランでは、進捗管理、間違えた問題の自動復習リスト、詳細な解説動画など、 より充実した学習体験をご利用いただけます。