Permíteme darte un ejemplo. Cuando empiezas a escribir, tu primer componente React, aprendes, de acuerdo, hay un componente de función React, y lo haces así, y luego te das cuenta, de acuerdo, pero la gente no usa esto. La gente usa React.fc. Y yo estaba como, no tenemos diversión, funky, y divertido para la función como una palabra clave en JavaScript. ¿Por qué hacer esto? ¿Por qué no podemos tener una forma de hacer las cosas para que puedas enseñar de una manera, y puedes aprender de una manera, y puedes ser bueno en ello? Pero esto no es el final de la historia porque entonces, cuando realmente empiezas a leer sobre cómo tipar componentes, y así sucesivamente, te das cuenta de que muchos expertos, TypeScript expertos, te dicen que no hagas React.fc.
Básicamente, y todo se reduce a que casi todos ellos se quejan de un problema que existía en, sí, alerta de spoiler, ahora está resuelto. Básicamente, los tipos siempre implícitamente, así es como sucedió, las implicaciones de React.fc añadieron los hijos implícitos. Así que si tenías un componente, como un modelo, que cuando realmente necesitas tener hijos, nosotros los esperamos, podrías pasarlos o podrías dejarlos fuera. Pero si tienes otros componentes donde no haces uso de los hijos en absoluto, tú no puedes declararlo de ninguna manera porque siempre estarán opcionalmente allí con React.fc. Y básicamente, lo que propusieron es usar esto en su lugar. Y haces esto y migras toda tu base de code con tu equipo, y luego incorporas a nuevos juniors y están realmente, realmente emocionados porque sienten que, hey, tienen una mejora de la que pueden hablarte. ¿Sabías que hay un React.fc y podríamos migrar a esto? Y la única reacción es como, hablemos de otra cosa. Y te sientes realmente mal por ellos. Pero todo cambió. Por cierto, los tipos de React no son mantenidos por el equipo central de React. Pero quienquiera que los mantenga, tomó una decisión realmente genial porque con React 2018 y cambio disruptivo, introdujeron un cambio con sus tipos, eliminando los hijos implícitos. Ta-da. Y yo estaba como, aleluya, resolvió todos mis problemas, puedo volver a React.fc. ¿Por qué? Porque si tengo esto aquí, si tengo hijos, ahora tengo que tiparlos explícitamente, o puedo tiparlos explícitamente y básicamente decir de acuerdo, los hijos son una nota de React. Y lo que está pasando aquí es que si miras este componente, el componente utiliza hijos, y básicamente se espera que pongas a los hijos. Si haces esto, todo estará bien. Pero si haces esto aquí, obtendrás un error de typescript. Así que te dirá como, hey, este componente realmente sólo funciona bien si pasas hijos. Así que por favor pasa a tus hijos. Y también puedes hacerlo al revés. Si dejas a los hijos fuera del todo, lo bonito es que si haces esto, estará bien. Pero si haces esto aquí, te dará una advertencia, hey, deberías proporcionar hijos. No deberías proporcionar hijos porque este componente no acepta ningún hijo. Así que este es un truco muy ingenioso. Realmente arreglaron los tipos y realmente se ajusta a mi modelo mental de básicamente como quiero decir, esto es Wikipedia, pero el objetivo es evitar que las operaciones que esperan un cierto tipo de valor se utilicen con valores con los que esa operación no tiene sentido.
Comments