This is basically that but in the opposite direction. It also has the advantage of being able to express validations that you can't express in the type system.
I should point out that there's nothing in Zod (yet) that isn't expressible in Typescript. I'll eventually get around to doing string/numerical validations (`.isEmail()`, etc) that go beyond TS but currently all functionality has an equivalent in TS.
Do you have an example of the kind of validation couldn't be expressed in the type system?
Min or max length of an input. Any type of string validation like email or something similar that's validated via regex.
root_axis gave some good examples. Also types like `int` or `decimal` (which you can also pair with branded static types, but they don't actually guarantee anything other than their name. Really any kind of refinement you can imagine on primitive types.