Finalmente, tenemos daño, que es otro número. Uh, vamos a hacer esto un float 32. Así que también podemos tener puntos decimales. Y ese es el esquema completo ahora definido.
Entonces, ¿qué podemos hacer sin el esquema de MarioKart? Um, podemos serializar data. Así que si tomo, uh, si, si tengo algún, ya sabes, objeto JavaScript definido, uh, que cumple con este data, bueno, que cumple con este tipo, puedo crear un serializador a partir de mi esquema de MarioKart. Um, disculpas. Esto es de un ejemplo anterior. Oh, Dios mío. Aquí está nuestro serializador de MarioKart, ahora podemos pasar tanto data como queramos, y se serializará 10 veces más rápido que, uh, usando este serializador alineado con el tipo que hemos creado. También podemos, por supuesto, analizar, disculpen, aquí hay una cadena con un string JSON de datos de personaje de MarioKart. También podemos compilar un analizador utilizando nuestro esquema. Y la mejor parte de esto es que sabe el tipo que esperamos de esto. Uh, cuando usamos este analizador para analizar realmente esta cadena, el tipo resultante va a ser o bien personaje de MarioKart o undefined. Undefined si está, uh, básicamente va a ser el caso si los data están de alguna manera inválidos. Y así, si los data no son inválidos y tenemos un resultado, entonces sabemos que estos son datos de Mario Kart. Tenemos todos nuestros typings configurados. Podemos comenzar, obtenemos nuestra ayuda de tipo. Um, podemos estar seguros de los data que se han definido aquí y simplemente hace que todo nuestro código a partir de ese punto sea mucho más fácil. Y por supuesto, si es undefined, entonces podemos consultar el mensaje de error a través de la propiedad en la función de paso.
Entonces, uh, sí, creo que eso es todo para el ejemplo de código. Esto es realmente genial y emocionante. Así que en realidad no creé, creé una utilidad de tipo similar para el esquema de Jason y, uh, una utilidad de tipo equivalente que Jason acaba de presentar fue creada por algún ingeniero de JavaScript excepcionalmente brillante. Él contribuye a la charla por su cuenta. Pero eso te da un gran poder en TypeScript porque este enfoque de analizar Jason directamente al tipo de aplicación en lugar de en alguna estructura genérica de data es, o, y al contrario, serializar un tipo específico en lugar de serializar una estructura genérica de data, uh, se utiliza en todos los lenguajes, casi todos los lenguajes, ¿verdad? Haskell, Go, Rust, como una estructura genérica de datos de Jason se utiliza generalmente en lenguajes de script, como JavaScript y Python, pero socava fundamentalmente el rendimiento y la confiabilidad y el uso de analizadores que están alineados con el tipo, uh, que son, uh, resulta en alta seguridad y alto rendimiento al mismo tiempo. Entonces, como dijo Jason, compilar serializar. Así que el serializador compilado genera en realidad códigos JavaScript bajo el capó. Entonces, si se usa repetidamente, te brinda un impulso de rendimiento de 10 veces en comparación con la serialización y el análisis de Jason. Uh, si los data son válidos, entonces se analizará en prácticamente el mismo tiempo que el análisis de Jason, pero lo validará a medida que avanza. Pero por ejemplo, si alguien envía un arreglo en lugar de un objeto, fallará en el primer carácter.
Comments