Menu
CoddyTech

ジェネリックインターフェース

CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 61/73。

ジェネリック関数を作成できるのと同様に、ジェネリックインターフェースも作成できます。これにより、特定のプロパティの型を柔軟かつ再利用可能に保ちながら、オブジェクトの形状を定義できます。

同じ型パラメーター構文を使用してジェネリックインターフェースを作成する方法は次のとおりです:

interface Container<T> {
  value: T;
  isEmpty: boolean;
}

インターフェース名の後にある <T> は、インターフェース定義全体で使用できる型パラメーターを作成します。この例では、value プロパティはインターフェースを使用するときに指定した型になり、isEmpty は固定の boolean 型のままです。

ジェネリックインターフェースを使用する場合は、山括弧内に具体的な型を指定します。

const stringContainer: Container<string> = {
  value: "hello",
  isEmpty: false
};
const numberContainer: Container<number> = {
  value: 42,
  isEmpty: false
};
challenge icon

チャレンジ

簡単

成功情報とともに任意の型のデータを保持できる、Result という名前のジェネリックインターフェースを作成してください。

インターフェースには次の2つのプロパティを定義してください。

  • 型が boolean の success
  • 型パラメーター(ジェネリック型)が T の data

ジェネリックインターフェースを使用して、次のオブジェクトを作成してください。

  • 型が Result<string> で、success: true および data: "Operation completed" を持つ stringResult
  • 型が Result<number> で、success: true および data: 42 を持つ numberResult
  • 型が Result<boolean> で、success: false および data: false を持つ booleanResult
  • 型が Result<string[]> で、success: true および data: ["item1", "item2", "item3"] を持つ arrayResult

次の処理を行う、processResult という名前のジェネリック関数を作成してください。

  • ジェネリック型パラメーター T を使用する
  • 型が Result<T> の result というパラメーターを1つ受け取る
  • 文字列メッセージを返す
  • success が true の場合、"Success: [data]" を返す
  • success が false の場合、"Failed: [data]" を返す

次の出力を表示してください。

  • stringResult を引数として processResult を呼び出した結果を表示する
  • numberResult を引数として processResult を呼び出した結果を表示する
  • booleanResult を引数として processResult を呼び出した結果を表示する
  • arrayResult を引数として processResult を呼び出した結果を表示する
  • stringResult.data を表示する

自分で試してみよう

// TODO: ここにコードを書いてください

// ジェネリックな Result インターフェースを作成する


// Result インターフェースを使用してオブジェクトを作成する


// ジェネリックな processResult 関数を作成する


// 必要な出力を表示する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Introduction To TypeScriptのすべてのレッスン

自分で練習してみよう: TypeScriptプレイグラウンド