Does Typescript offer a strong type system?
I've heard it referred to it as an "optionally typed" or "gradually typed" system, which, having worked for years in Typescript and other languages like Rust and Kotlin, etc, I agree with.
Great thing is that the zod schema also doubles as your typescript type so you don't have to write a duplicate/shadow TS type definition.