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

typescript-to-zodはTypeScriptの型定義をzodスキーマに書き換えてくれるライブラリ及びサービス。
ここで
export type F = object
を置き換えると
export const fSchema = z.any()
になる。それは
export type F = z.infer<typeof fSchema>
// type F = any
にもなる。

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

(objectの用法によっては不適切かもなので、そこは考えよう。)
本当に、TypeScriptのobject
相当が使いたければ、z.object({})
が使えそう。
(たぶん)