GraphQL Code Generator の Typescript plugin では strictScalars をオンにすると良さそう
GraphQL ではビルドインされている Scalar type 以外にも Custom scalar type を扱うことがあります。例えば gqlgen では Time という type が用意されています。GraphQL Code Generator で Typescript プラグインを用いてコード生成している場合、この Time
のようなものに関しては、どの型としてコード生成するのか設定を codegen.yml に書く必要があります。
gqlgen の Time
という type は時刻の文字列を RFC3339 形式で返してくるのですが、これを考えたとき
generates: .... plugins: - "typescript" ... config: ... scalars: Time: string # Time という Custom scalar type を string としてコード生成する
このような記述をすることになるのかなと思います。
ただし万が一この記述を忘れると Time
は any 型としてコード生成されてしまい、型の恩恵を受けられなくなってしまいます。この忘れを防止するのが strictScalars
で、これを true
にしておけば、コード生成時に scalars
オプションにかかれていない scalar type を発見した場合にコケてくれるので書き忘れがなくなります。
generates: .... plugins: - "typescript" ... config: ... strictScalars: true # scalars: Time: string の記述を消すとエラーを出してくれる scalars: Time: string