関数の型定義

上級
28
2時間48分

TypeScriptの関数の型定義に関する練習問題

TypeScriptコースの一部として、関数の型定義に関する実践的な練習問題を28問用意しています。 基礎から応用まで段階的に学習できるよう構成されています。

学習を開始する準備ができました

下記の練習問題から始めて、段階的にスキルアップしていきましょう

typescript icon

練習問題一覧 (28問)

問題 1

カスタムエラークラスを作成する際の正しい書き方はどれですか?

問題 2

以下のコードの空欄に入る適切な型はどれですか? ```typescript function filterArray(items: number[], condition: ____): number[] { const result = []; for (const item of items) { if (condition(item)) { result.push(item); } } return result; } ```

問題 3

以下のコードで、`transformArray`関数に渡すコールバック関数として**適切でない**ものはどれですか? ```typescript function transformArray(arr: string[], transform: (item: string) => string): string[] { return arr.map(transform); } ```

問題 4

以下の関数呼び出しのうち、型エラーが発生しないものはどれですか? ```typescript function calculateTotal(price: number, tax: number = 0.1): number { return price * (1 + tax); } ```

問題 5

`void`型を戻り値とする関数の用途として最も適切なものはどれですか?

問題 6

関数型における引数名の扱いについて正しい説明はどれですか?

問題 7

以下のコールバック関数の使用例で、コンパイルエラーが発生するものはどれですか? ```typescript function processValue(value: number, callback: (x: number) => string): void { console.log(callback(value)); } ```

問題 8

非同期関数で`Promise<number>`を返す関数を`async/await`で使用する際、`await`の結果の型は何になりますか?

問題 9

`void`型と`undefined`型の使い分けとして正しいものはどれですか?

問題 10

async/await構文の主な利点として**最も重要でない**ものはどれですか?

問題 11

TypeScriptで「2つの数値を受け取り、1つの数値を返す関数」の型を表現する正しい方法はどれですか?

問題 12

以下のコードで`applyOperation`関数の`operation`引数に指定すべき型はどれですか? ```typescript function applyOperation(value: number, operation: ____): number { return operation(value); } ```

問題 13

`Promise<string>`型が表す意味として最も適切なものはどれですか?

問題 14

`async`キーワードを付けた関数が自動的に返す型は何ですか?

問題 15

以下のコードを実行したときの結果はどうなりますか? ```typescript async function fetchNumber(): Promise<number> { return new Promise((resolve, reject) => { setTimeout(() => reject(new Error("失敗")), 100); }); } async function main(): Promise<void> { try { const num = await fetchNumber(); console.log("成功:", num); } catch (error) { console.log("エラー:", error.message); } console.log("処理完了"); } ```

問題 16

非同期処理でエラーをキャッチするために使用するTypeScriptの構文はどれですか?

問題 17

関数を戻り値として返す高階関数の型定義として正しいものはどれですか?

問題 18

TypeScriptで関数の戻り値の型を指定する際の正しい書き方はどれですか?

問題 19

デフォルト引数を持つ関数の特徴として正しいものはどれですか?

問題 20

以下のコードで配列を受け取って処理する関数の引数の型として正しいものはどれですか? ```typescript function processNumbers(numbers: ____): number[] { return numbers.map(num => num * 2); } ```

問題 21

アロー関数で引数と戻り値の型を指定する正しい書き方はどれですか?

問題 22

`await`キーワードを使用した際のTypeScriptの型推論について正しいものはどれですか?

問題 23

オプショナル引数を定義する際に使用する記号は何ですか?

問題 24

以下のコードの戻り値の型として正しいものはどれですか? ```typescript function findUser(id: number) { if (id === 1) { return "田中"; } return undefined; } ```

問題 25

以下のエラー型定義において、API呼び出しが成功した場合のデータアクセス方法として正しいものはどれですか? ```typescript type ApiResult<T> = { success: true; data: T; } | { success: false; error: string; }; ```

問題 26

以下のコードで、`greet`関数を正しく呼び出せるものはどれですか? ```typescript function greet(name: string, title?: string): string { if (title) { return `Hello, ${title} ${name}!`; } return `Hello, ${name}!`; } ```

問題 27

複数の非同期処理で一つでもエラーが発生した場合の処理について、最も適切な設計パターンはどれですか?

問題 28

TypeScriptで関数型を使用する主な利点として最も適切なものはどれですか?

💡 学習のコツ

  • • 順番に取り組むことで、段階的に理解を深めることができます
  • • 間違えた問題は解説をしっかり読んで理解しましょう
  • • 全問題完了後、もう一度チャレンジして定着を確認しましょう

📚 学習の進め方

1

問題を順番に解く

基礎から応用へと段階的に構成されているため、順番に取り組むことをお勧めします

2

解説をしっかり読む

正解・不正解に関わらず、解説を読んで理解を深めましょう

3

復習で定着させる

間違えた問題は後日再チャレンジして、知識の定着を確認しましょう

前のトピック

基本的な型

次のトピック

ジェネリクス

さらに効果的な学習を

プレミアムプランでは、進捗管理、間違えた問題の自動復習リスト、詳細な解説動画など、 より充実した学習体験をご利用いただけます。