Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Does/will this correctly handle `| undefined` vs `?`, i.e. correct behavior under `exactOptionalPropertyTypes`?

Zod doesn't (yet[0]) and it's been a pain point for me.

[0] https://github.com/colinhacks/zod/issues/635



I ran into exactly same pain point which was enough to nullify the benefits of using zod at all.


It does: https://valibot.dev/guides/optionals/#use-in-objects

  import * as v from 'valibot';
  const OptionalKeySchema = v.object({ key: v.optional(v.string()) });
  type t1 = v.InferInput<typeof OptionalKeySchema>; // { key?: string }

  const UndefinedKeySchema = v.object({ key: v.undefinedable(v.string()) });
  type t2 = v.InferInput<typeof UndefinedKeySchema>; // { key: undefined }


TypeBox[1] differentiates between optional and undefined.

[1]: https://github.com/sinclairzx81/typebox




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: