UNIT 4 Skill Tree

DRILL 08 / 再利用とデータ構造

ジェネリクス

入力の要素型を保ったまま、複数の型で使える関数を定義します。

目安 10分 TypeScript generic / readonly array

YOUR TASK

lastOrNull() を完成させる

読み取り専用配列の末尾要素を返してください。空配列の場合は null を返します。要素型を失わないジェネリック関数にします。

入力
values は任意の要素型を持つ読み取り専用配列です。
出力
末尾要素を元の型のまま返し、空配列なら null を返します。

SYNTAX RECALL

確認する構文

function first<T>(values: readonly T[]): T | null {
  return values[0] ?? null;
}
  • <T> で呼び出しごとの要素型を受け取る
  • readonly T[] で入力配列を変更しない
  • 戻り値へ null の可能性を含める

STEPWISE HINTS

ヒント

01考え方の方向

関数名の後ではなく、関数名の前に `<T>` を置きます。

02使うデータ構造

末尾の添字は `values.length - 1` です。

03擬似コード

空配列を先に判定して null を返すと、残りの処理が明確になります。

AFTER ACCEPTED

解説

AC 後に解説が開きます

まずは自分の言葉で方針を説明し、コードに落としてみましょう。