| ▲ | tonypapousek 11 hours ago | |
In my personal projects, I’m a fan of using satisfies to check Zod definitions against the interfaces they validate. I find the base interfaces easier to read at a glance than derived types, especially in an editor’s hover view. Though, nullable fields might get weird, iirc. | ||
| ▲ | MrJohz 3 hours ago | parent [-] | |
Yeah, I believe that doesn't quite work correctly for nullable fields or cases where the Zod type would be a subtype of the declared type. But it's a really useful technique, because it's a lot easier to work with types you've declared in TypeScript than the ones Zod generates. I'm sure there's scope for a validation library that is designed around the user providing a TypeScript type and then producing an error if the validation doesn't match that type. | ||