Open3

typescript-to-zodでobjectを変換するとz.any()になる。z.record(z.unknown())に置き換えよう。

あいや - aiya000あいや - aiya000

typescript-to-zodはTypeScriptの型定義をzodスキーマに書き換えてくれるライブラリ及びサービス。

ここで

export type F = object

を置き換えると

export const fSchema = z.any()

になる。それは

export type F = z.infer<typeof fSchema>
// type F = any

にもなる。

あいや - aiya000あいや - aiya000

TypeScriptのobject型は実質anyみたいなものなので、そうなっているのかもしれない。

TypeScriptで安全なobjectRecord<string, unknown>に置き換えるように、zodでもこのz.any()z.record(z.unknown())に置き換えるのを忘れないようにしよう。
(objectの用法によっては不適切かもなので、そこは考えよう。)

あいや - aiya000あいや - aiya000

(objectの用法によっては不適切かもなので、そこは考えよう。)

本当に、TypeScriptのobject相当が使いたければ、z.object({})が使えそう。
(たぶん)