Hola a todos, y bienvenidos a esta charla sobre Zotter y TypeScript en su aplicación React. Así que, quiero comenzar con una historia. Hace casi un año, nació TypeScript. Y probablemente todos los desarrolladores de JavaScript en el mundo estaban contentos. Así que, comenzamos a crear interfaces para mapear nuestro modelo. Así que, empezamos a usar números, cadenas, booleanos y así sucesivamente. O tal vez tipos, dependiendo del escenario puedes usar interfaz o tipos. Lo que prefieras, no es un problema.
Y en nuestro proyecto todo era perfecto. Teníamos todos los tipos perfectos en nuestra base de código. Y fue un trabajo perfecto para nosotros. Hasta que un día, un desarrollador de backend decidió cambiar la API. Y desafortunadamente, él o ella decidió cambiar la firma de la API. El resultado en nuestra aplicación React es algo como esto. No es un número, no es una cadena de fragmento, o todo tipo de extraño error de JavaScript que puedes imaginar en tu aplicación React. Estos son porque sí, Tileset es fantástico. Me encanta. Pero después de la transpilación, pierdes todos los tipos y el código se convierte en código JavaScript, porque en tu navegador, solo se ejecuta código JavaScript y no código de tileset. A veces los desarrolladores olvidan esto y no se dan cuenta hasta que en producción, no reciben este tipo de error.
Entonces, ¿cómo podemos resolver este problema en nuestras aplicaciones React o JavaScript o Tilescript? Así que, el superhéroe es Zod. ¿Qué es Zod, en primer lugar? Zod es un simple paquete NPM que puedes instalar en tu aplicación React, en tu proyecto, usando tu gestor de paquetes. Puedes usar NPM, instalar, Zod, y todo está listo para usar. Zod tiene un concepto simple, el concepto de esquema. El esquema es un objeto, un verdadero objeto JavaScript en este caso, como puedes notar, que describe tu objeto. En este caso, un esquema de cliente es un esquema Zod que describe que el cliente es un objeto con cuatro propiedades, el ID, con el tipo de número, el nombre con el tipo cadena, el correo electrónico con el tipo cadena de nuevo, y lo mismo para el teléfono. También puedes agregar diferentes restricciones. Por ejemplo, la cadena puede aceptar también una restricción de que esto es un correo electrónico, el teléfono es un teléfono y así sucesivamente. O también puedes construir si quieres tu propio tipo personalizado. Por ejemplo, quieres un caso específico para describir, puedes hacer esto. Pero también puedes, por ejemplo, crear un num, tipo literal, lo que quieras.
Comments