book icon indicating copy to clipboard operation
book copied to clipboard

TypeScriptでPartialを使わない方がいいことに関する記事を発見

Open shota-nukumizu opened this issue 2 years ago • 1 comments

TypeScriptでParticalを使わないことを推奨するZenn記事を発見したので共有。

type Item = {
  name: string;
  price: number;
}

type ItemStore = Partial<Item>;
const initialValue: ItemStore = {};

上記の場合、storeだと毎回全てのプロパティの有無を確認しなければならない。

type ItemStore = Item | undefiend;
const initialValue: ItemStore = undefined;

こうすることで、storeundefinedかどうかを確認するだけでいいのでリファクタリングの手間が省ける。(基本的にはすべての値が揃ってからもらう、または初期値を用意する、あるいは部分的にundefinedを許容するなどしたほうが扱いやすい)

参照

  • https://typescriptbook.jp/reference/type-reuse/utility-types/partial
  • https://zenn.dev/bom_shibuya/articles/8565ba948a1629

shota-nukumizu avatar Aug 19 '22 11:08 shota-nukumizu

一概にPartialに問題があるというよりは、オブジェクトの不変条件をどう考えるかといった設計上の意思決定によってPartialを使うべきかどうかを判断するものと考えられます。

いまのところオブジェクトの設計までは本書では踏み込んでないのと、あまり一般的な意見としては聞いたことがない主張なので、取り上げない方向性が現状は強いです。

suin avatar Aug 19 '22 12:08 suin