Genial. Gracias. Así que tenemos un par de preguntas para ti. Anil Polt, está preguntando si estoy creando la versión de
TypeScript como un proyecto que no es una biblioteca, ¿sería fácil simplemente actualizar y buscar un nuevo script rojo que pueda aparecer si el servidor de lenguaje está funcionando correctamente, verdad? Perdón, repíteme eso una vez más. Sí, por supuesto. Si actualizar la versión de
TypeScript es un proyecto que no es una biblioteca, ¿sería fácil simplemente actualizar y buscar un nuevo script rojo que pueda aparecer si el servicio de lenguaje está funcionando correctamente? Veamos. Creo que en general, en su mayor parte, deberías poder actualizar
TypeScript. He encontrado que como regla general tanto en el desarrollo de aplicaciones como en el desarrollo de bibliotecas, definitivamente hay momentos en los que tengo que usar el comando de VS
code para reiniciar el servidor de
TypeScript o simplemente volver a cargar toda la ventana, es la vieja historia de reiniciarlo y ver qué pasa y ver si funciona mejor para asegurarme de que
TypeScript esté analizando correctamente las cosas, especialmente si estás haciendo algo como actualizar la versión de
TypeScript o a veces modificar otras versiones de bibliotecas que tienes en la aplicación. Pero en general, actualizar esas cosas y posiblemente reiniciar debería ser suficiente para que VS
code y el servidor de lenguaje comiencen a hacer algún reprocesamiento. Ahora, como observación general, también he visto que como VS
code está limitado generalmente a los archivos que tienes abiertos y hay muchos archivos que en realidad no tienes abiertos. Así que mirar las cosas en el editor ayuda, pero también vas a querer volver a ejecutar un paso de compilación y hacer que intente compilar todo el proyecto para ver si realmente funciona como crees que debería funcionar. De acuerdo, gracias. ¿Cuál es la etiqueta de
TypeScript más complicada en la que has trabajado? Eso probablemente sería la que está en la penúltima diapositiva que hice en mi presentación de Reselect 4.1. Para hacer una comparación, creo que mencioné esto en la charla, las definiciones anteriores de Reselect tenían definiciones escritas a mano para cubrir casos de 1 a 12 entradas como argumentos separados o un array de argumentos, y eso sumaba más de 3,000 líneas solo de tipos. Así que cuando estaba, las definiciones en Reselect 4.1 comenzaron como una solicitud de extracción de otra persona. Así que no escribí todo desde cero, pero hice el trabajo de tratar de integrarlas y luego evolucionarlas. Y ese último tipo que viste allí, donde se está haciendo una operación de mapeo a nivel de tipo, eso fue realmente difícil. Y me atribuyo la mayor parte de ello. Vi más o menos lo que quería hacer a nivel de tipos. Pero también es cierto que había varios lugares donde realmente no sabía cómo hacer que los tipos hicieran lo que me gusta. Puedo ver lo que necesita hacer. Si esto fuera código
JavaScript, podría hacer que suceda. ¿Cómo hago esto como una operación a nivel de tipos? Y afortunadamente, había algunas personas que eran mucho mejores en
TypeScript que yo, que pudieron ayudarme a superar esos problemas. Eso fue realmente difícil de trabajar. Gracias por compartir tu experiencia. Y si alguien de la audiencia quiere compartir su experiencia con el tipo más difícil que ha encontrado, puede usar el hashtag TSCongress en Twitter. Y otra pregunta es, ¿cuál es el problema más común que ves cuando los usuarios presentan problemas relacionados con TS? Diría que tiene que ver con las personas que no tienen la opción de configuración estricta de
TypeScript o la opción de verificación estricta de nulos activada. Hemos tenido varios casos en los diversos repositorios relacionados con
Redux donde alguien presenta un problema diciendo que la biblioteca no funciona correctamente en su aplicación. Y siempre, como mantenedores, siempre pedimos a alguien que nos muestre una reproducción del problema en un código sandbox o un repositorio de GitHub. Pero esto es especialmente cierto cuando se trata de un problema de
TypeScript porque hay tantas opciones de configuración diferentes que podrían haber configurado de manera diferente. Y hemos visto varios casos en los que resulta que el usuario no tenía activada la verificación estricta de nulos, y eso significa que los tipos que hemos escrito en nuestra biblioteca se comportan de manera diferente a cómo los probamos y esperamos que funcionen. Y en ese caso, les decimos, mira, francamente, desde nuestra perspectiva, la configuración de tu aplicación está configurada incorrectamente. Por favor, activa la verificación estricta de nulos y eso solucionará el problema real que estás viendo. De acuerdo. Gracias. Eso fue genial. Ahora vamos a unirnos a Mark en la sala de oradores en Discord. El enlace para unirse está en la línea de tiempo. Gracias, Mark. Gracias. Lo aprecio.
Comments