De acuerdo, el siguiente. Entonces, los tipos de propiedades de React son opcionales de forma predeterminada cuando los enumeras. Así que veo muchos ejemplos donde se definen los tipos de propiedades, en realidad, pero ninguno de ellos está marcado como requerido. Pero si miras el código, las propiedades son definitivamente requeridas, como cuando se llama a .map en un array y cosas así. Estos son errores esperando a suceder. Las interfaces de script son requeridas de forma predeterminada, por lo que sin hacer nada especial, tienes la garantía de que los valores siempre existirán. Eso es muy bueno. Entonces, si llamo a este componente sin incluir la propiedad requerida count en este caso, me lo advertirá. Y nuevamente, no se compilará. Por lo tanto, puedes usar el signo de interrogación para indicar que una propiedad es opcional, lo que significa que su valor es undefined cuando no se pasa. Entonces, ahora si omito la propiedad count al renderizar app, en este ejemplo, no hay errores porque se establecerá por defecto en dos.
De acuerdo, si cambias el nombre de una propiedad, todos los lugares donde se usa también deben cambiarse. Digamos que esta propiedad aquí resaltada se llamaba originalmente names, pero la cambié a players dentro del componente. Entonces vas y buscas y reemplazas para solucionar todos los problemas. Pero, ¿los encontraste todos? ¿Cómo puedes estar seguro al 100 por ciento? ¿Y si alguien estaba haciendo algo loco y no coincidía con tu expresión regular? Bueno, TypeScript se quejará si te olvidas de algo. Y en realidad, un derivado de esto es cuando simplemente confundes una propiedad. TS también se quejará de inmediato.
De acuerdo, número cuatro, parece que es mucho trabajo definir una forma anidada profundamente. Correcto. Incluso con las reglas de ES lit, encontramos formas de hacer trampa. No hay nada que obligue a los tipos de propiedades a ser 100 por ciento precisos. Bueno, TypeScript ahora se interpondrá en tu camino y te impedirá ser perezoso. Nos impide ser perezosos. Déjame incluirme a mí también. Pero también te está salvando porque tienes que definir exactamente lo que está disponible. No puedes acceder a propiedades de la propiedad de usuario a menos que definas exactamente cuáles son. Entonces, si decidimos en la interfaz de dirección cambiar is primary a solo primary, obtendremos errores de TypeScript en toda la aplicación y el componente de la aplicación hasta que los solucionemos. Entonces, una vez más, TypeScript es muy beneficioso en las refactorizaciones.
De acuerdo, el siguiente y este en realidad es probablemente mi favorito. Así que con los tipos de propiedades, todo lo que obtienes son tipos de propiedades que funcionan para una función.
Comments