¿Qué es "TC39: Type Annotations" también conocido como la propuesta de Tipos como Comentarios

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Un análisis profundo de la propuesta que podría deshacer la bifurcación de TypeScript y traernos de vuelta a todos nosotros como "JavaScripters, pero con algunos tipos de TypeScript." Cubriremos los motivos del autor, cómo podría funcionar, por qué ahora y cómo va.

This talk has been presented at TypeScript Congress 2023, check out the latest edition of this JavaScript Conference.

FAQ

La desunificación propuesta busca separar las características de TypeScript que afectan el runtime de JavaScript, intentando que TypeScript y JavaScript evolucionen de manera más independiente.

La propuesta de Anotaciones de Tipo TC59, también conocida como Tipos con Comentarios, es una propuesta que permite ejecutar código tipado en JavaScript, tratando las anotaciones de tipo como comentarios que los motores de JavaScript pueden ignorar.

Las propuestas en TC39 pasan por cinco etapas, comenzando desde la etapa 0 hasta la etapa 4, donde cada etapa se vuelve más específica en detalles y implementación.

La propuesta podría influir en TypeScript al introducir limitaciones que podrían integrar más estrechamente TypeScript con JavaScript estándar, posiblemente afectando cómo se manejan las anotaciones de tipo en TypeScript.

El objetivo principal de TC39 es encontrar maneras de hacer evolucionar JavaScript de manera segura y controlada, utilizando propuestas como la de Tipos con Comentarios para introducir nuevas características y cambios.

Hasta marzo de 2023, la propuesta de Anotaciones de Tipo TC59 estaba en la etapa 1, donde se están considerando y respondiendo preguntas clave sobre su viabilidad y diseño.

Los interesados pueden seguir el repositorio en GitHub, participar en las encuestas de la comunidad y contribuir con sus opiniones y código para influir en el desarrollo de la propuesta.

Orta Therox
Orta Therox
27 min
21 Sep, 2023

Comments

Sign in or register to post your comment.
  • Denis Radin
    Denis Radin
    GitNation Foundation
    Looking forward to ts being a standard! Cool intent!
Video Summary and Transcription
La propuesta de Anotaciones de Tipo TC59, también conocida como Tipos con Comentarios, introduce la capacidad de ejecutar código tipado en JavaScript. Su objetivo es traer TypeScript de vuelta a JavaScript y crear una separación entre el sistema de tipos y el tiempo de ejecución. La popularidad de TypeScript está a la par con JavaScript, lo que genera preocupaciones sobre la influencia de Microsoft. La propuesta avanza abordando la interacción en tiempo de ejecución y la sopa de tokens en las especificaciones de tipo. La investigación, la participación de la comunidad y la cuantificación de los efectos de apoyar este estilo de comentario son objetivos importantes.

1. Introducción a la Propuesta de Anotaciones de Tipo TC59

Short description:

Vamos a repasar la propuesta de Anotaciones de Tipo TC59, también conocida como Tipos con Comentarios, que añade la capacidad de ejecutar código tipado en JavaScript. La propuesta se encuentra actualmente en la primera etapa del proceso TC39. Discutiremos su concepto subyacente y cómo afecta a TypeScript.

Muy bien. Hola a todos. Vamos a repasar la propuesta de Anotaciones de Tipo TC59, también conocida como Tipos con Comentarios. Esta es una propuesta que añade la capacidad de ejecutar código tipado en JavaScript. Ahora, mi nombre es Otto the Rocks. Solía trabajar en el equipo de TypeScript durante unos dos años y medio. Durante ese tiempo trabajé en el sitio web y en la documentación y un poco en las características del compilador aquí y allá. Y una de mis cosas favoritas cuando me fui fue que tenía este gran video de YouTube que describe todo el proceso del compilador que es realmente, realmente útil si estás, ya sabes, interesado en entender las herramientas que usas a diario. Así que, para empezar esta charla, queremos tener al menos un vocabulario compartido. Vamos a hablar un poco sobre TC39. Son un grupo de personas cuyo objetivo principal es tratar de averiguar cómo hacer evolucionar JavaScript de manera lenta y segura. Y la forma en que lo hacen es a través de estas propuestas. Estas propuestas, ya sabes, pasan por cinco etapas. Todas son cada vez más específicas con el tiempo. Y estamos hablando de una propuesta de TC39 que ahora está en la primera etapa. Así que, la propuesta en sí es lo que vamos a tratar primero. La repasaremos brevemente. Profundizaremos en por qué ahora tiene sentido. Porque no es la primera. Veremos cómo afecta a TypeScript. Eso es la mayoría. Y vamos a ver hacia dónde se dirige a continuación. Así que, este es el concepto subyacente. Que hay un problema con este código. Que no se ejecutará en un motor de JavaScript. Como la cadena de dos puntos va a fallar. Y eso significa que eso no es un lenguaje legítimo. Así que, queremos estar en una posición en la que eso no suceda.

2. El impacto de la propuesta en TypeScript y JavaScript

Short description:

Esta propuesta sostiene que los motores de JavaScript deben tratar el código como un comentario, permitiendo a los navegadores ignorarlo. No es un comentario tradicional, sino una forma de indicar que el código debe ser ignorado. TypeScript ha demostrado la necesidad de JavaScript tipado, y esta propuesta se basa en lenguajes anteriores como Ruby y Python. El enfoque principal es cómo esta propuesta afecta a TypeScript y lo reintegra en JavaScript.

¿Cómo hacer eso? Esa es la pregunta complicada que mucha gente ha hecho. Y esta propuesta sostiene que la forma de hacerlo es decir que, oye, motores de JavaScript, simplemente ignoráis este código. Lo tratáis como un comentario. Ahora, los comentarios ya están bastante bien definidos en JavaScript. Tenéis una barra, barra. Lo hacemos hasta el final de la línea. Y tenéis una barra, estrella. Lo hacemos hasta el final de una estrella, barra. Aquí estamos usando el término de forma un poco ambigua. No es un comentario en la forma en que normalmente pensamos en ellos. Pero está diciendo tanto a la persona que está tratando de entender esta propuesta, la idea es, simplemente lo ignoras. Y enseñamos a los navegadores cómo ignorar ese tipo de código. Y esa es la idea. Si realmente quieres profundizar en los detalles, puedes ir a los comentarios de TypeScript, voy a cometer ese error varias veces. La página web de la propuesta de comentarios de TypeScript. Y esta es una versión de nivel superior de la propuesta. Así que no requiere que seas un nerd del lenguaje, básicamente. Y si quieres realmente profundizar, deberías ver la charla de Gil Tyre sobre el preludio a su propuesta, porque él es uno de los que la están impulsando. Cómo y por qué consiguió cierto consenso de un montón de gente. Y más o menos por qué tiene sentido a largo plazo en comparación con él usando el soporte JSDoc en JavaScript.

Entonces, ¿por qué ahora? ¿Verdad? Como, ya sabes, ha habido muchos intentos de tratar de añadir un sistema de tipos a JavaScript. Y esta es más o menos la primera vez que uno ha llegado a un nivel de, ya sabes, gente que se preocupa. Creo que TypeScript realmente ha demostrado a la gente que hay una necesidad de JavaScript tipado a una escala razonable. TypeScript ahora está en una posición en la que está bien asumir algunas de las restricciones que serían necesarias para hacer esto funcionar. Y la idea ya ha sido probada en lenguajes anteriores que tienen restricciones similares, como lenguajes de tipo script, como Ruby y Python. El grado en que están totalmente de acuerdo con todas las compensaciones es algo que ahora podemos usar para averiguar qué debería parecer eso en JavaScript en comparación con la implementación de Ruby y Python, también. Así que no somos los primeros, estamos probando algo nuevo. Estamos probando algo que está razonablemente establecido. Ahora, lo que creo que a la mayoría de la gente en el contexto del Congreso de TS le interesa es cómo afecta esto a TypeScript, ¿verdad? Esta es una propuesta que añade algunas restricciones a TypeScript que pueden traer de vuelta a TypeScript a JavaScript. Hay muchas cosas pasando aquí. Y cuando pensé en cómo enmarcar esto, repasé las notas de la discusión original de TC39, y vi que Rob Palmer había

3. Desunificando TypeScript y JavaScript

Short description:

Tiene cuatro puntos principales: la capacidad de ejecutar TypeJavaScript en cualquier lugar, desunificar TypeScript de JavaScript, hacer de TC39 el lugar para la discusión de la sintaxis, y crear una verdadera separación entre el sistema de tipos y el tiempo de ejecución. La popularidad de TypeScript se mide por el porcentaje de solicitudes de pull abiertas en GitHub, lo que muestra el crecimiento de TypeScript y su impacto en JavaScript. TypeScript se está volviendo tan popular como JavaScript, con una división del 50-50 en el uso. Esto plantea preocupaciones para JavaScript como un lenguaje impulsado por consenso y plantea preguntas sobre la influencia de una sola empresa, Microsoft, en el lenguaje.

esta hermosa frase que resume todo. Tiene cuatro puntos principales que vamos a repasar uno por uno. Quieren la capacidad de ejecutar TypeJavaScript en cualquier lugar, quieren desunificar TypeScript de JavaScript, y quieren hacer de TC39 el lugar donde se lleva a cabo la discusión de la sintaxis. Y quieren que haya, como, una verdadera separación entre, como, qué es una cosa del sistema de tipos y qué es una cosa del runtime, y esta propuesta ayuda a todos esos. Entonces, para repasarlos uno por uno, en realidad quiero cambiar estos dos alrededor para poder trabajar con una mejor historia. Desunificar TypeScript a JavaScript, creo, puede ser mejor explicado tratando de averiguar la popularidad de TypeScript. Y una buena manera de medir eso es la cantidad de solicitudes de pull de código abierto que ocurren en GitHub. Entonces, esto va a ser un gráfico del porcentaje de todas las solicitudes de pull que son de un lenguaje específico. Así que vamos a mirar primero en JavaScript. Entonces, desde 2013, era aproximadamente el 17%. Y luego eso subió a alrededor del 25% antes de 2016. Entonces, tienes esto de todas las solicitudes de pull, JavaScript pasó de ser el 17% de todas las solicitudes de pull al 25% de todas las solicitudes de pull, lo que significa que a medida que el ecosystem de código abierto de GitHub estaba creciendo, el ecosystem de JavaScript estaba creciendo más rápido. Y luego empiezas a ver que disminuye. Y parte de eso, es un ecosystem en crecimiento de todos haciendo código abierto. Entonces, ya sabes, cuando más usuarios de Python entran, es un pastel más grande. Pero al mismo tiempo, hay casi un crecimiento lineal de TypeScript durante todo este período de tiempo también. Entonces, es difícil negar que TypeScript debe estar comiendo en la base de usuarios de JavaScript, de alguna manera, en GitHub para las solicitudes de pull de código abierto.

Pero lo interesante es que están empezando a converger, ¿verdad? Como, están acercándose mucho a ser aproximadamente el mismo número, que es en algún lugar alrededor del 10% para cada uno. Obtuve estos data de BigQuery, que es un proyecto de Google que te permite analizar todos estos grandes conjuntos de datos de código abierto, incluyendo cosas del gráfico de uso de GitHub. Y esto es, puedes ir a un sitio web llamado GitHub 2.0, que intentará mostrarte los exactos de cómo se miden estas métricas de popularidad. Pero es bastante razonable decir que aproximadamente TypeScript es el fork de JavaScript, que es tan popular como JavaScript para el código moderno. Es una división 50-50 entre si alguien va a usar JavaScript o TypeScript en un proyecto o al menos en una solicitud de pull en el código abierto. Y entonces, quién sabe cómo se ve eso en el código privado. Y, ya sabes, es difícil medir siempre la exactitud de cosas como esta. Pero no es tan difícil decir que esto podría ser así. Y entonces, cuando piensas en eso, eso es un poco preocupante para JavaScript como una cosa conceptual. Como JavaScript, como, el principal truco, si quieres, es que es un lenguaje impulsado por consenso que es muy útil para todas estas cosas del navegador web. Entonces, tenemos diferentes conjuntos de personas en TC39 que tienen diferentes conjuntos de restricciones. Pero juntos, encontraron un consenso que sigue asegurando que una página web construida hace 20 años todavía funciona hoy, porque la compatibilidad hacia atrás de JavaScript es bastante sólida. Pero lo extraño aquí es ahora, si hay un lenguaje que es dirigido por un conjunto de una empresa, Microsoft, ¿es un gran espacio para nosotros estar en donde hay este un lenguaje que es la parte subyacente que tiene a mucha gente trabajando juntos para tratar de averiguar la cosa correcta a hacer, pero por otro lado, hay una empresa que representa alrededor del 50% de todas las contribuciones de código abierto a ese lenguaje usando esos tipos de lenguajes. Es un poco demasiada presión para

4. Impacto de TypeScript en JavaScript

Short description:

Es preocupante para TC39 que alguien les quite la alfombra de debajo. Las restricciones de TypeScript minimizan el impacto en JavaScript. Las personas interactúan más con el código en TypeScript, aunque se ejecute como JavaScript. Esta propuesta tiene como objetivo traer a las personas de vuelta de TypeScript a JavaScript. La libertad de TypeScript está limitada en un mundo de tipos de comentarios. El equipo de TypeScript ya ha abordado problemas similares. TypeScript se está convirtiendo en la mayoría en los proyectos de JavaScript.

Microsoft. Es un poco preocupante para la gente de TC39, básicamente, tener a alguien que quizás simplemente les quite la alfombra de debajo. Para TypeScript, cuando estaba en el equipo, realmente di una charla sobre las restricciones que TypeScript se impone a sí mismo para asegurarse de que tiene el menor impacto negativo posible en el ecosystem de JavaScript, y cómo funciona eso, y por qué vale la pena leer sobre eso si realmente quieres profundizar en el tema. Pero no voy a entrar en eso, en general, aquí. Es poco probable que TypeScript haga eso, y esto ayuda a esos conjuntos de restricciones. Así que la forma en que pienso en cómo se usa el código hoy en día, la mayoría de las personas están escribiendo JavaScript, según sus estadísticas de BigQuery. Pero un porcentaje considerable está utilizando TypeScript, y hay una o dos personas de JS en medio que lo hacen un poco ambiguo. Pero la forma en que las personas interactúan con este código a través de herramientas y leyendo read-me's y cosas así, es en su mayoría, mucho más basada en TypeScript, porque tienes cosas como definitely typed, que proporciona comentarios en línea en tus editores, y eso realmente se come el espacio de interacción en el que las personas usan archivos JavaScript en general. Y aún así, de todo eso, el código real que puede ejecutarse en tu motor JavaScript es solo JavaScript. Y entonces te encuentras en esta posición en la que realmente no puedes explorar con este código, porque tiene que pasar por un transpilador para eliminar sus anotaciones de tipo. Pero se siente extraño una vez que empiezas a acostumbrarte a trabajar en un ecosystem como Deno o Bund donde TypeScript puede ser una característica nativa. Realmente empieza a confundirte con la idea de que estás ejecutando un archivo JavaScript. Empiezas a pensar que estás ejecutando un archivo TypeScript. Y eso no es generalmente bueno para TC39 porque, de nuevo, quieren que estés ejecutando un archivo JavaScript, los motores JavaScript. Eso es lo que es todo. Y esta propuesta ayuda a intentar traer a la gente de vuelta de TypeScript a JavaScript. TypeScript tiene mucha libertad ahora porque ejecuta su propia implementación del lenguaje. Y entonces, cuando, ya sabes, cuando se añaden características a TypeScript, pueden ser puestas donde quieran siempre y cuando tenga sentido y pueda ser utilizada en todas partes. Pero en el contexto de un mundo de tipos de comentarios, ya no es tan cierto. En este código, este tipo de característica simplemente no está disponible. No puedes añadir un post fijo, como satisfies. No puedes establecer una palabra clave arbitrariamente. Y satisfies podría ser relevante solo para TypeScript. Podría no ser relevante para otros sistemas de tipos. Y entonces, ya sabes, el equipo de TypeScript realmente tiene que ceder algo aquí. Y eso no son todo malas noticias, ¿verdad? Este es un problema que el equipo de TypeScript ya ha tenido que abordar al menos una vez, porque, ya sabes, el soporte de satisfies ya está en JSDock. Y, ya sabes, eso funciona bastante elegantemente. Y entonces, tienes esta cosa donde, como, ya sabes, hay todo este TypeScript en el mundo. Ya sabes, cualquiera que esté haciendo TypeScript hoy básicamente está haciendo un proyecto TypeScript con archivos .ts, y hay algunas personas de JSDock. Pero en el futuro, creo que va a ser mucho más como que hay una gran mayoría de personas que

5. Restricciones de TypeScript y Progreso de la Propuesta

Short description:

La propuesta tiene como objetivo restringir TypeScript dentro del alcance de esta propuesta, separando las características de tipo de las características de tiempo de ejecución. TypeScript quiere evitar el soporte de ciertas características a nivel de expresión que afectan al tiempo de ejecución, como los enums y los espacios de nombres. La propuesta ha avanzado de la etapa cero a la etapa uno después de abordar preguntas sobre la interacción con el tiempo de ejecución y evitar la sopa de tokens en las especificaciones de tipo.

están haciendo JavaScript con TypeScript. Y ellos representan la mayoría de la gente. Y, sabes, la versión de TypeScript que se ejecuta en el TypeChecker va a restringirse a encajar dentro del alcance de esta propuesta. Y las personas que realmente quieren total libertad sintáctica, todavía tienen la capacidad de hacerlo a través de los archivos .ts. Pero van a ser más de un caso marginal dentro del mundo de JavaScript, en mi opinión. Lo siguiente es que quieren separar las características de tipo versus las características de runtime para realmente especificar que, sabes, un tipo las extensiones de tipo realmente no pueden editar el código que se está ejecutando. Y, como, dentro del contexto de TypeScript, hay características que el equipo de TypeScript lamenta pero sigue apoyando para siempre. Y resulta que cuando miras el diagrama de Venn de estas dos cosas, en realidad son exactamente las mismas cosas. Sabes, las características que TypeScript no quiere necesariamente apoyar son todas características que son características a nivel de expresión.

Entonces, este pequeño meme que hice en algún momento, que es como una forma de decir, como, en algún momento, sabes, TypeScript decidió que, como, los enums y los espacios de nombres y estas características que como afectan al runtime, no son realmente las cosas que TypeScript quiere involucrarse y eso es como una responsabilidad para 2.6.39. Y este sistema de estilo de comentarios de tipos realmente ayuda a reforzar la, como, la línea entre esas dos responsabilidades.

Entonces, ¿dónde estamos ahora? Estamos un poco más adelante en el camino. Sabes, fue en marzo de 2022 cuando esta propuesta salió por primera vez. Sabes, la propuesta decía, hey, realmente estamos tratando de encontrar una forma de, como, hacer este tipo de cosas conceptuales de comentarios. Y llegaron a una etapa cero, que efectivamente significa, hey, esto podría, esto es algo. Nadie va a destrozarlo. Es realmente va a ser implementado como esto. Pero llegó a un punto en el que, cuando hablaba con el resto de los equipos de TC39, la gente concluyó que hay algunas buenas preguntas que mirar para empezar a pensar para la etapa uno, y volvieron un año después y empezaron, sabes, respondiendo a algunos de los, respondiendo a algunos de esos problemas. El primero era tratar de averiguar, hey, si construimos un sistema de tipos como este, ¿debería poder interactuar con el runtime en absoluto? Como, sabes, la idea general de TypeScript hoy en día es que puedes pasar de un archivo de TypeScript a un archivo de JavaScript simplemente presionando delete. Ese es el objetivo. Y eso significa que cualquier cosa que hagas en tipos no puede tener un efecto en el runtime. De lo contrario, no puedes simplemente presionar delete. Eso no es lo mismo cosa. Y así, la propuesta, sabes, codifica esto. Y, sabes, después de volver y hablar con un montón de gente, hay mucha gente que dice, como, esto simplemente no es navegadores simplemente bloquearía esto si les exigiera construir un comprobador de tipos para saber correctamente si algo debería ser del tipo correcto o no en diferentes momentos. Y así, si eso es un bloqueador, entonces eso es genial. Porque eso libera a los tipos como comentarios para ser tipos como comentarios en lugar de tipos como performance hints, tal vez. El siguiente es tratar de evitar este problema de sopa de tokens. La idea general es que, como, es difícil ahora mismo poder especificar realmente qué puede vivir en un tipo y qué no. La heurística aproximada ahora mismo es si es una llave abierta tiene que haber una llave cerrada. Y puedes mirar de izquierda a derecha y contar tus llaves de esta manera y contar tus cierres de esta manera. Y una vez que hayas terminado, entonces podrías haber terminado con

6. Investigación, Alcance y Participación Comunitaria

Short description:

Se necesita realizar investigaciones para identificar problemas conocidos y desconocidos en este espacio. La propuesta está en la etapa uno, y se están haciendo esfuerzos para cuantificar los efectos de apoyar este estilo de comentario. El alcance comunitario y la definición de un área de código no ambigua son objetivos importantes. Involúcrate siguiendo el repositorio de GitHub, explorando alternativas y participando en encuestas comunitarias.

el tipo si ves, por ejemplo, un signo igual. Y esto es bueno para una heurística de papel, pero en realidad, hay mucho código JavaScript complicado que necesita seguir existiendo. Por lo tanto, se necesita hacer mucha investigación para descubrir qué problemas conocemos y qué problemas aún no conocemos en este espacio. Pero todavía había suficiente para que la gente dijera, oye, esta propuesta, tiene una oportunidad. Existe la posibilidad de que esto pueda entrar. Y eso es realmente lo que sucedió con la etapa uno.

Entonces, estamos llegando. En este momento, las personas que estaban trabajando en la propuesta están tratando de averiguar cómo pueden cuantificar los efectos de cambiar para apoyar este tipo de estilo de comentario. Ignorar puede funcionar. Los navegadores estarían de acuerdo con un pequeño golpe en el performance para apoyar el alcance de esta idea. Pero es posible que no estén de acuerdo con intentar hacer eso si viene con demasiados compromisos de performance porque la única forma en que podemos realmente declarar esto es el espacio de tipo es que requiere hacer un poco de análisis, volver y volver a analizarlo, ahora que sabemos que están en un contexto diferente, y cosas así. Es algo complicado de implementación del compilador y si realmente quieres averiguar esos detalles, ve a ver mi charla, Cómo el Compilador Compila, y puedes ver cómo funciona un tokenizador en general. El siguiente es tratar de averiguar el alcance de la community, ver qué personas están interesadas en este espacio. Quieren las opiniones de muchos grupos de personas, por lo que habrá personas de JavaScript que no creen que debería haber tipos allí, y habrá personas de documentation que dirán, oye, ¿por qué no hacemos nuestra propia cosa en este espacio en lugar de solo usarlo para tipos. Va a haber muchas personas haciendo un trabajo realmente creativo en ese espacio de tipos, y yo creo que ese es el objetivo de la talla, pero también quieres tener cuidado con eso. Y luego tratar de averiguar, ¿cómo resolvemos este problema de la sopa de tokens al tratar de definir realmente un área que podría ser razonablemente ambigua, pero al mismo tiempo no ser ambigua, para que puedas declarar fácilmente, oye, esta es un área de código que simplemente no se va a ejecutar. Con los comentarios, eso es fácil porque hay delimitadores de fin fáciles, pero esto no es tan cierto con la cosa que estamos mirando.

Entonces, ¿cómo puedes involucrarte? Bueno, en primer lugar, tal vez sigue el repositorio de GitHub. Tenemos muchos, tenemos relativamente pocos problemas con el tiempo. Mucha de esa actividad ocurrió en los primeros seis meses, y ahora mucho de eso es solo gente que está tratando de explorar alternativas a este tipo de sistema de tipos de estilo de comentario que están muy interesados en ser creativos, por lo que siempre vale la pena echar un vistazo, pero sería bueno tener a algunas personas allí que digan, oye, sí, como que muchas de estas son respuestas resueltas, y hay muchas personas que ya tienen código que se parece mucho a esto que podría ser, podría ser bueno tener a algunas más personas diciendo ese tipo de cosas allí, y el otro sería participar en las encuestas de la community. Como muchas de las veces, ya sabes, las anotaciones de tipo son la característica más solicitada y eso es, ya sabes, bueno para esta propuesta, porque proporciona respaldo para decir, ya sabes, la gente quiere esto, y también, ya sabes, va a haber encuestas de la gente que realmente escribe estas propuestas sobre cómo averiguar, como, qué tipo de intercambio son aceptables. Si alguna vez ves alguno de esos, creo que la mayoría de esas personas están en Masterband y idealmente, todos deberían estarlo, así que también revisa esos. Y creo que eso es suficiente. Como, todos, quiero decir, espero que esto entre, porque creo que esto será realmente bueno para JavaScript, porque me encantaría ver, como, la defoliación de TypeScript, creo que eso es uno de los grandes mayores para mí, porque entonces, ya sabes, todos volvemos a ser ingenieros de JavaScript estándar de nuevo, es un poco como el segundo paso después de que se agregó el soporte de Babel a TypeScript y de repente todos estos proyectos de JavaScript estaban disponibles, tenemos la misma oportunidad para que lo mismo vuelva a suceder, así que estoy fuera de las rocas, puedes encontrarme en Masterband y en mi sitio web, y que tengas un buen día, ¡disfruta, adiós!

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.
Los tipos más útiles de React
React Day Berlin 2023React Day Berlin 2023
21 min
Los tipos más útiles de React
Top Content
Today's Talk focuses on React's best types and JSX. It covers the types of JSX and React components, including React.fc and React.reactnode. The discussion also explores JSX intrinsic elements and react.component props, highlighting their differences and use cases. The Talk concludes with insights on using React.componentType and passing components, as well as utilizing the react.element ref type for external libraries like React-Select.
If You Were a React Compiler
React Summit US 2024React Summit US 2024
26 min
If You Were a React Compiler
Top Content
In this talk, the speaker aims to build an accurate understanding of how the new React compiler works, focusing on minimizing re-renders and improving performance. They discuss the concept of memoization and how it can be used to optimize React applications by storing the results of function calls. The React compiler automates this process by analyzing code, checking dependencies, and transpiling JSX. The speaker emphasizes the importance of being aware of memory concerns when using memoization and explains how the React compiler detects changes in function closure values. They also mention the Fibre Tree, which drives the reconciliation process and helps optimize performance in React. Additionally, the speaker touches on JSX transpilation, compiler caching, and the generation of code. They encourage developers to understand the code generated by the compiler to optimize specific sections as needed.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.

Workshops on related topic

Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Consejos y Trucos Profundos de TypeScript
Node Congress 2024Node Congress 2024
83 min
Consejos y Trucos Profundos de TypeScript
Top Content
Featured Workshop
Josh Goldberg
Josh Goldberg
TypeScript tiene un sistema de tipos poderoso con todo tipo de características sofisticadas para representar estados de JavaScript salvajes y extravagantes. Pero la sintaxis para hacerlo no siempre es sencilla, y los mensajes de error no siempre son precisos al decirte qué está mal. Vamos a profundizar en cómo funcionan muchas de las características más poderosas de TypeScript, qué tipos de problemas del mundo real resuelven, y cómo dominar el sistema de tipos para que puedas escribir código TypeScript verdaderamente excelente.