Sua dica é boa, mas seu texto me fez entender que o Zod veio para consertar alguma coisa no TypeScript?.
O Zod é apenas um auxiliar para o desenvolvedor lidar com os dados conforme os tipos definidos durante a produção, o mais incrível dele é como funciona incrivelmente bem com o TypeScript fazendo com que você não precise definir os tipos duas vezes, por exemplo, você pode criar você mesmo os tipos e validações, mas em algum momento você perceberá que está criando um tipo para produção e outro para execução, o Zod praticamente elimina isso e tem uma API extremamente útil para facilitar as validações.