🕗

[読書メモ]オブジェクト設計スタイルガイド 6章2節 with TypeScript

2024/02/28に公開

オブジェクト設計スタイルガイドを読みながら、TypeScriptでやるならどうやるかを考えながら書きました。
要約的に読める内容になっていると思うので、サクッと3分ぐらいで読める記事となっています。
https://www.oreilly.co.jp/books/9784814400331/

6.2 クエリメソッドでは単一の型の戻り値を持つ

メソッドを使用する側の気持ちになろうといった話。

NG:使う側のハンドリングが大変

isValid(id: string): string | number {
}

▲:ちょっと使いにくい

getUserById(id: string): User | null {
  if (!id) {
    return null
  }
  return new User()
}

OK:例外を返すと良い

getUserById(id: string): User {
  if (!id) {
    throw new Error()
  }
  return new User()
}

OK:空配列を返すなど

listUsersById(id: string): User[] {
  if (!id) {
    return []
  }
  // .. 略
}

Discussion