utility-typesはTSの便利な型集(Omitなど常用するものが入っている)であるが、この$Shape
の定義はflow v0.90以前とは異なっているの注意が必要。
export type $Shape<T extends object> = Partial<T>;
で、nullを許容しないが、v0.90までのFlowはnullableなのでflow→tsからの一時しのぎにutils-typesを導入すると型エラーが起きうる。
まあ、一瞬で$Shape
からPartial
にできるので現状とくにutils-typesの$Shape
を使う意味はない。
flow v0.90以後はPartial
と同等なので、こちらも純粋にPartial
を使えばいい。
Changed $Shape<> types to reject null and void as subtypes
https://github.com/facebook/flow/releases/tag/v0.90.0