La próxima generación de GraphQL y TypeScript

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

Nuevas características en TypeScript que pueden mejorar nuestro flujo de trabajo de GraphQL.

This talk has been presented at GraphQL Galaxy 2020, check out the latest edition of this Tech Conference.

FAQ

GraphQL Cogen es un proyecto de código abierto iniciado por Lhothan, que genera TypeScript, C Sharp, Java y más a partir de esquemas de GraphQL. Se utiliza para mantener sincronizados los sistemas de tipos de GraphQL y TypeScript y para generar código que mejora la experiencia de desarrollo y la seguridad de tipos.

Al mantener sincronizados los sistemas de tipos de GraphQL y TypeScript, GraphQL Cogen asegura que cualquier cambio en el esquema de GraphQL se refleje correctamente en el código de TypeScript, lo que reduce los errores en tiempo de ejecución relacionados con discrepancias de tipos.

Uno de los complementos más populares de GraphQL Cogen para TypeScript es el que genera tipos de TypeScript directamente desde el esquema de GraphQL. Otro complemento destacado es TypeScript React Apollo, que genera hooks de React listos para usar basados en Apollo Client y operaciones de GraphQL.

El Type Document Node es un complemento en GraphQL Cogen que genera un nodo de documento a partir de operaciones de GraphQL, incluyendo los tipos de las variables y los resultados integrados, lo que permite usar estos tipos automáticamente en bibliotecas compatibles sin necesidad de especificaciones adicionales.

GraphQL Cogen es muy flexible y permite integrarse con una amplia gama de herramientas y lenguajes. Genera código no solo para JavaScript y TypeScript, sino también para otros lenguajes como C# y Java, y puede usarse con herramientas como Webpack, Gatsby, Next.js, además de soportar frameworks como Apollo, Oracle, Vue, Stencil y Angular.

TypeScript 4.1 introduce la capacidad de realizar manipulaciones de cadenas a nivel del compilador. Esto permite, por ejemplo, tomar definiciones de tipo en cadenas y convertirlas directamente en tipos de TypeScript, facilitando la integración y manipulación de datos entre TypeScript y GraphQL.

Los interesados en contribuir a GraphQL Cogen pueden unirse a la comunidad y colaborar en el desarrollo de nuevos complementos o mejoras. Es posible contactar a Lhothan o a otros miembros del gremio a través del canal de Discord para más información y formas de participación.

Dotan Simha
Dotan Simha
22 min
02 Jul, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
El CTO de la Guild discute la importancia de mantener sincronizado el esquema de GraphQL y el código de TypeScript. Introducen GraphQL Cogen, una herramienta que genera tipos y código de TypeScript para mejorar la experiencia del desarrollador y la seguridad de tipos. La herramienta también genera hooks de React listos para usar basados en Apollo Client y admite múltiples idiomas e integración con varias herramientas. También discuten la introducción de Type Document Node, que genera un nodo de documento a partir de operaciones de GraphQL. Mencionan las nuevas características de manipulación de cadenas en TypeScript 4.1 y la capacidad de analizar las definiciones de tipos de GraphQL con un lexer. Expresan la necesidad de ayuda de la comunidad para superar las limitaciones en TypeScript al analizar cadenas complejas y multilineales.

1. Introducción a la Integración de GraphQL y TypeScript

Short description:

Soy Lhothan, el CTO de The Guild, un grupo de desarrolladores de código abierto enfocado en la integración de GraphQL y TypeScript. Mantener el esquema de GraphQL y el código de TypeScript sincronizados es crucial para reducir errores en tiempo de ejecución. GraphQL Cogen es una herramienta flexible que genera tipos y código de TypeScript para mejorar la experiencia del desarrollador y la seguridad de tipos. Vamos a profundizar en los complementos más populares, comenzando con TypeScript, que genera tipos basados en el esquema y las operaciones de GraphQL. También generamos código, como el complemento TypeScript React Apollo.

Hola a todos. Mi nombre es Lhothan. Soy el CTO de un grupo llamado The Guild. Somos un grupo de desarrolladores de código abierto enfocados principalmente en GraphQL y su ecosistema. Hoy estoy aquí para hablar con ustedes sobre GraphQL, TypeScript, la integración de ambos y las herramientas relacionadas. Y también un poco sobre la próxima generación de integración de TypeScript y GraphQL.

Así que empecemos con lo básico. ¿Por qué necesitamos esta integración? Cada lenguaje tiene su propio sistema de tipos. GraphQL tiene su propio sistema de tipos donde se define el esquema de GraphQL. Se llama SDL y luego tenemos TypeScript, que tiene su propio sistema de tipos. Entonces, al escribir el esquema de GraphQL, necesitas mantener sincronizado tu SDL de GraphQL donde defines el esquema real y tu código de TypeScript donde escribes tu implementación real en los resolvers. Puedes hacerlo manualmente y mantenerlo sincronizado manualmente o puedes usar herramientas para eso. Esto es de lo que voy a hablar en este caso. Mantener los dos sistemas de tipos sincronizados es muy importante porque, considera un campo que has eliminado o agregado a tu esquema de GraphQL, debe reflejarse en el código de TypeScript. Por lo tanto, mantener estos dos sincronizados es importante y probablemente reducirá la mayoría de tus errores en tiempo de ejecución relacionados con GraphQL y TypeScript.

Hace unos años tuve problemas con GraphQL y TypeScript, así que comencé con un pequeño proyecto de código abierto llamado GraphQL Cogen. Esto fue hace cuatro años y hoy tenemos una gran comunidad y no solo generamos TypeScript, también generamos C Sharp, Java y mucho más, y generamos más que solo tipos, generamos un código real que puede ayudarte a mejorar tu experiencia de desarrollo y tu seguridad de tipos. Cogen es una herramienta muy flexible, puedes escribir tus propios complementos y configurar la salida para que se ajuste al proceso de generación y agregar tu propio código, así que es bastante genial. Voy a hablar un poco sobre los complementos más populares que tenemos hoy en día que están relacionados con TypeScript. El primero es TypeScript, el que mencioné antes. Este complemento simplemente genera tipos de TypeScript a partir de tu esquema de GraphQL y esto parece muy similar porque los sistemas de tipos son algo similares y nuestro objetivo es generar código en TypeScript que sea lo más similar posible al esquema de GraphQL. Pero el esquema de GraphQL no lo es todo. También tenemos consultas, mutaciones y todo lo que involucra un conjunto de selección, que es una de las características más poderosas de GraphQL, la capacidad de elegir campos y seleccionar exactamente lo que necesitas y no más que eso.

Dado el hecho de que puedes elegir los campos, significa que tus tipos son algo dinámicos y se basan en tu selección de campos. También generamos tipos basados en tus operaciones de GraphQL. Entonces, cuando lo uses en tu código, tendrás una seguridad de tipos completa. Pero esto son solo tipos. También generamos más. Como dije, generamos código. Así que aquí

2. Características del complemento GraphQL Cogen

Short description:

El complemento genera hooks de React listos para usar basados en Apollo Client y tus operaciones. Compila previamente las operaciones de GraphQL y crea hooks basados en el nombre de la operación. No se necesita especificar manualmente el tipo, ya que los tipos están integrados en los hooks generados. La herramienta también genera una firma completa de Resolvers, utilidades para varios frameworks y admite múltiples lenguajes e integración con varias herramientas. Pruébalo con la demostración en vivo en nuestro sitio web.

es un pequeño ejemplo de otro complemento llamado TypeScript React Apollo. Y este complemento genera hooks de React listos para usar basados en Apollo Client y en tus operaciones. Básicamente, toma tus operaciones de GraphQL, las compila previamente y crea hooks listos para usar basados en el nombre de tu operación. Entonces, cuando lo uses en tu código, todo lo que necesitas hacer es importar el hook, proporcionar tus variables y luego usar los datos. Y la idea es que estamos integrando los tipos en los hooks generados. Por lo tanto, no necesitas especificar manualmente los tipos ni nada por el estilo. Simplemente obtienes autocompletado y validación de tipos para las variables y el tipo de resultado. Así que esto es bastante genial. Como dije, no solo generamos tipos y eso, generamos más.

Hay una firma de Resolvers. Entonces, si eres un desarrollador de backend que escribe tu esquema y implementación de GraphQL, puedes generar una firma completa de Resolvers a partir de tu esquema e integrar tus propios tipos de modelo en esa firma. Generamos algunas utilidades para Apollo Client, pero no solo eso, también para Oracle, solicitud de GraphQL, Vue, Stencil, Angular, lo que sea. Y no solo es JavaScript y TypeScript, también generamos más para otros lenguajes, e integramos básicamente con todas las herramientas disponibles en este tipo de ecosistema. Entonces, puedes usarlo con Webpack y con Gatsby y Next.js. Y recientemente hemos introducido un nuevo complemento para React query, si lo estás usando. Así que pruébalo, tenemos una demostración en vivo muy agradable en nuestro sitio web, puedes probarlo y ver cuál es la salida basada en la entrada que puedes cambiar o agregar. Así que pruébalo.

3. Introducción a Type Document Node

Short description:

Recientemente, introdujimos un nuevo concepto y complemento en GraphQL Cogen llamado Type Document Node. Genera un nodo de documento a partir de tu operación de GraphQL, incluyendo los tipos del resultado y las variables. Si tu biblioteca de cliente admite el nodo de documento tipado, puedes compilar previamente tus operaciones y obtener seguridad de tipos y autocompletado. Al fusionar los árboles en un solo objeto, la inferencia de TypeScript detecta automáticamente los tipos basados en el documento. El nodo de documento tipo es compatible con GraphQL.js, Apollo Client 3 y Oracle. Se admiten bibliotecas adicionales a través de parches.

Entonces, pasemos al próximo tema. Recientemente, introdujimos un nuevo concepto y un complemento en GraphQL Cogen llamado Type Document Node. Básicamente, lo que estamos haciendo aquí es tomar tu operación de GraphQL y generar un nodo de documento a partir de ella, que es simplemente una representación en forma de objeto de la operación de GraphQL, nada más que eso, pero lo que estamos agregando son los tipos del resultado y los tipos de las variables incorporados en ese objeto.

Entonces, si estás utilizando una biblioteca de cliente que admite un nodo de documento tipado, simplemente puedes compilar previamente tus operaciones de GraphQL en un nodo de documento y usarlo con tu biblioteca y no necesitas especificar nada más. No necesitas agregar tipos, no necesitas establecer explícitamente los genéricos ni nada por el estilo. Simplemente puedes usar los tipos tal como están y obtendrás seguridad de tipo en tus variables y en tu resultado, pero también obtendrás autocompletado basado en el conjunto de selección que elijas y los campos que desees usar. Así que esto es bastante impresionante.

Entonces, si quieres saber cómo funciona. Si no estás utilizando el nodo de documento tipado, lo que estamos generando para ti hoy es un tipo separado para el tipo de resultado de la operación, un tipo separado para las variables de esa operación y un nodo de documento. Como dije, es simplemente una versión compilada de tu consulta de GraphQL. Pero estos tres son separados. Cada uno de ellos se define por separado. Y cuando lo uses, necesitas especificar dos tipos y el objeto del propio documento. Esto podría ser un problema porque usarlo de esa manera significa que si te equivocas en el tipo, no lo detectarás durante el desarrollo y solo lo descubrirás en tiempo de ejecución cuando sea demasiado tarde. Así que estamos pensando en cómo evitar este tipo de tipos establecidos explícitamente. Entonces, lo que hicimos fue tomar ese nodo de documento. Tomamos ese tipo que generamos para el tipo de resultado y el tipo de las variables. Y simplemente fusionamos todos los árboles en un solo objeto. Y la idea es que estamos utilizando la inferencia de TypeScript para detectar automáticamente los tipos basados en el documento que estás pasando. Entonces, si estás utilizando una biblioteca que admite el nodo de documento tipado, todo lo que necesitas hacer es proporcionar tu operación de GraphQL. Obtendrás tipos automáticos y autocompletado basado en esa operación. Así que esto es bastante impresionante. Y aquí, no hay lugar para errores, porque no necesitas especificar tipos manualmente ni nada más. Simplemente úsalo y estará tipado. En este momento, el nodo de documento tipo es compatible directamente desde GraphQL.js. El propio tipo es parte de la implementación de GraphQL.js, por lo que simplemente puedes usarlo desde allí. Y esto gradualmente se convierte en el estándar para este tipo de integración. Apollo Client 3 y Oracle lo adoptaron y ahora lo están utilizando, y si estás utilizando el nodo de documento tipo, todo lo que necesitas hacer es especificarlo y los tipos se inferirán automáticamente. Si no estás utilizando esas bibliotecas, simplemente puedes ir al repositorio del nodo de documento tipo, donde puedes ver una lista de complementos adicionales, bibliotecas adicionales que admitimos. Simplemente puedes usar un parche que proporcionamos y agregará soporte para esas bibliotecas hasta que ellas lo admitan.

4. TypeScript 4.1 Manipulación de Cadenas

Short description:

En TypeScript 4.1, puedes manipular tipos de cadenas a nivel del compilador. Al definir estructuras específicas y utilizar la inferencia de TypeScript, puedes extraer y manipular subcadenas, validar estructuras y más. Esta potente función te permite convertir cadenas SDL de GraphQL en tipos durante la transpilación del compilador.

Hasta ahora con el nodo de documento tipo, mi próximo tema para hoy es la próxima versión de TypeScript, que es TypeScript 4.1 y la nueva característica impresionante que tiene. En esta versión de TypeScript, podrás usar cadenas y hacer manipulaciones en esas cadenas a nivel del compilador de TypeScript. Esto suena un poco vago, lo sé, pero piensa en tomar tipos de cadena que defines en TypeScript, como ves aquí, y simplemente hacer manipulaciones en el nivel de tu compilador de TypeScript. Aquí, por ejemplo, definimos un tipo con la cadena `world`, y luego tenemos un nuevo tipo con el saludo, y simplemente concatenamos las cadenas, y tenemos un nuevo tipo con esa salida. Así que esto es simple, pero podemos hacer mucho más con ello. Tomemos este ejemplo, por ejemplo. En este ejemplo, definí un nuevo tipo llamado `statement`, y solo tiene una cadena. También definí un nuevo tipo auxiliar llamado `extract name`, y este tipo es un poco sofisticado. Lo que hace es tomar la cadena, cualquier cadena, e intenta extraer una estructura específica de ella. Así que en este caso, lo que estamos haciendo es buscar una estructura que comienza con `hello` y luego algún nombre y luego el resto de la cadena. Aquí estamos utilizando la inferencia de TypeScript para extraer el nombre. Básicamente, estamos diciendo que si esta cadena coincide exactamente con esta estructura, dame ese nombre. De lo contrario, simplemente devuelve `never`, que es nuestra forma de decir que no funcionó. Así que digamos que estoy usando este auxiliar con mi cadena aquí. El tipo extraído, como puedes ver, es `my name`, lo cual es bastante genial. Y esto es todo hecho a nivel del compilador. Así que podemos hacer manipulaciones de cadenas y extraer algún tipo de como subcadenas e incluso detectar estructuras, hacer validaciones. Así que esto es bastante genial, pero esto es una cadena simple. Podemos hacer aún más. Tomemos este ejemplo. En este ejemplo, como puedes ver, tomé la misma cadena, pero agregué más lógica a ese auxiliar. Ahora, en lugar de buscar una estructura específica, `extract name` busca un flujo más dinámico. Así que estamos utilizando la inferencia para extraer el saludo y luego esperamos un espacio y luego el nombre y luego una coma y luego un espacio y luego la pregunta. En lugar de simplemente devolver lo que encontramos, podemos devolver un tipo, un nuevo tipo de script que contiene esto. Por ejemplo, en esta cadena específica vamos a obtener una versión dividida de mi cadena. Así que aquí podemos ver que tengo un nombre que es `my name` y un saludo que es el saludo real y la pregunta, y este es como un tipo de script que podemos usar. Como dije, todo esto sucede a nivel del compilador y podemos tomar cualquier cadena y aplicar cualquier conjunto de reglas. Así que cualquier cadena que siga un estándar o una estructura específica que esté bien definida puede ser colocada aquí y podemos escribir la regla para extraer lo que hay dentro. Esto es asombroso porque hasta ahora lo que estamos haciendo con TypeScript y GraphQL es tomar el GraphQL, convertirlo en AST, y luego tomamos este AST y generamos código y este código se carga más tarde. Pero si podemos tomar el SDL de GraphQL como una cadena y simplemente convertirlo tal cual en un tipo en tiempo real durante el compilador

5. Análisis de las Definiciones de Tipo de GraphQL con Lexer

Short description:

Puedes tomar cualquier cadena de GraphQL y crear los tipos que representa sobre la marcha. Escribí un lexer básico de GraphQL para descomponer la cadena en pequeñas piezas y analizarla en el nodo del documento. Al comprender los vínculos entre las piezas, podemos crear tipos sobre la marcha a nivel del compilador. Reimplementé el lexer de GraphQL JS en ayudantes de TypeScript para analizar las definiciones de tipo y validar el lenguaje.

La transpilación del código. Esto es asombroso porque puedes tomar cualquier cadena de GraphQL y crear los tipos que representa sobre la marcha. Así que me tomé un tiempo y escribí un lexer muy básico de GraphQL. Como dije, GraphQL es estructurado. Es un lenguaje estructurado. Tenemos este sistema de tipos y tenemos la estructura exacta que define el lenguaje y los componentes que contiene. Está construido como piezas, como pequeñas piezas que se vinculan entre sí. Este tipo de representación se llama lexer. Básicamente, lo que sucede cuando llamas a GraphQL.parse en una cadena es que GraphQL toma la cadena, la descompone en muchas piezas pequeñas y luego toma esas piezas y las analiza en el nodo del documento real y realiza validaciones en ella. Si tomamos, por ejemplo, esta consulta simple, esta definición de tipo en GraphQL, intentemos descomponerla en piezas. Si intentamos entender cuáles son las piezas reales aquí. Tenemos un tipo, la palabra clave tipo, y luego otra palabra, y luego tenemos una llave aquí, y luego tenemos otra... todas estas están bien definidas en GraphQL, llamémoslo diccionario porque esto define cómo está estructurada cada oración en el lenguaje de GraphQL. Entonces, en nuestro caso, así es como se vería, tenemos cómo GraphQL lo descompondría en piezas. Pensando en esta nueva característica en TypeScript y GraphQL, básicamente podemos tomar este tipo de cadena y, sobre la marcha, convertirlo en la representación del tipo. Así que si podemos descomponerlo en piezas, como cada pieza por separado y entender los vínculos entre ellas, eventualmente podemos llegar a un punto en el que podemos tomar una cadena que contiene una definición de GraphQL, ya sea un tipo o una operación, y crear tipos sobre la marcha a nivel del compilador.

Así que hice un pequeño ejemplo de cómo funciona realmente. Lo que hice fue tomar la implementación del lexer original de GraphQL JS e intentar reimplementarlo en ayudantes de TypeScript. La idea detrás de esto es poder definir un lexer de GraphQL que sepa cómo analizar la definición de tipo en tiempo de ejecución y hacer esta validación del lenguaje real. Entonces, lo que sucede aquí es que tomé esta cadena que define una definición de tipo de GraphQL y creé un ayudante de TypeScript llamado parse-graphql-lexer. Y básicamente, lo que hace es buscar caracteres específicos a nivel de cadena y trata de descomponerlo en piezas. Cada pieza simplemente apunta a la siguiente. Así es como funciona el lexer original de GraphQL. Solo estaba tratando de reimplementarlo con el sistema de tipos. Como puedes ver aquí, solo estoy buscando tokens específicos que son conocidos para nosotros y son válidos en el lenguaje de GraphQL. Y lo que estoy haciendo aquí es tratar de extraer cada uno y luego pasar al siguiente. Así que en este caso, comenzamos con el inicio de la cadena y luego aquí, como puedes ver en el resultado, tenemos un nombre. Esta palabra tipo es solo un nombre para la parte del lexer porque aún no se ha analizado. Entonces, lo que estamos haciendo es simplemente nombrarlo. Y luego paso al siguiente, y como puedes ver aquí, comenzamos con el nombre, nombre y luego llave, y esto es bastante como una definición de tipo muy larga porque nuestro objetivo es poder analizar eso en una estructura que luego se pueda utilizar. Así que esto es solo una prueba de concepto. Y la idea aquí era tomar la cadena muy básica y analizarla en piezas que se entiendan.

6. Análisis de Cadenas GraphQL y Búsqueda de Ayuda de la Comunidad

Short description:

Podemos convertir cadenas gráficas en tipos sobre la marcha, analizar esquemas y operaciones gráficas de forma dinámica y crear firmas de resolutores. Sin embargo, existen limitaciones en TypeScript para analizar cadenas complejas y de varias líneas. Estamos buscando activamente la ayuda de la comunidad para superar estas limitaciones y mejorar el ecosistema de TypeScript y GraphQL.

Este es solo un ejemplo básico de cómo podemos tomar la cadena gráfica y convertirla en un tipo sobre la marcha. Pero en realidad, hay más. Si podemos entender la estructura de una cadena gráfica, podemos analizar esquemas gráficos sobre la marcha. Podemos entender operaciones gráficas sobre la marcha. Y básicamente, tomar cadenas gráficas y hacerlas disponibles para su uso dentro del lenguaje TypeScript. Entonces, si podemos entender la estructura completa de una cadena, incluso podemos tener una firma de resolutor que se tipa sobre la marcha. Y mucho más en realidad. En este momento, esto es solo una prueba de concepto como dije. Nuestro objetivo es tener más que eso. Pero necesitamos la ayuda de la comunidad. En este momento, hay algunas limitaciones a nivel de TypeScript. No podemos analizar cadenas muy complicadas y no podemos analizar y manejar cadenas de varias líneas que tienen espacios en blanco. Así que estamos tratando de encontrar formas de resolver todo eso y mejorar el ecosistema de TypeScript y GraphQL. Mucho mejor. Entonces, si tienes ideas y esto es algo que te interesa, no dudes en contactarnos y tal vez podamos trabajar juntos. Eso es todo por mi parte. Espero que esta charla haya sido interesante para ti. Si tienes alguna pregunta, no dudes en contactarme o a cualquiera del gremio en el canal de Discord. Eso es todo.

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

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.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
TypeScript y React: Secretos de un matrimonio feliz
React Advanced 2022React Advanced 2022
21 min
TypeScript y React: Secretos de un matrimonio feliz
Top Content
React and TypeScript have a strong relationship, with TypeScript offering benefits like better type checking and contract enforcement. Failing early and failing hard is important in software development to catch errors and debug effectively. TypeScript provides early detection of errors and ensures data accuracy in components and hooks. It offers superior type safety but can become complex as the codebase grows. Using union types in props can resolve errors and address dependencies. Dynamic communication and type contracts can be achieved through generics. Understanding React's built-in types and hooks like useState and useRef is crucial for leveraging their functionality.
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
TypeScript Congress 2023TypeScript Congress 2023
31 min
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
Top Content
Daniel Rowe discusses building a TypeScript-first framework at TypeScript Congress and shares his involvement in various projects. Nuxt is a progressive framework built on Vue.js, aiming to reduce friction and distraction for developers. It leverages TypeScript for inference and aims to be the source of truth for projects. Nuxt provides type safety and extensibility through integration with TypeScript. Migrating to TypeScript offers long-term maintenance benefits and can uncover hidden bugs. Nuxt focuses on improving existing tools and finds inspiration in frameworks like TRPC.
Deja de Escribir Tus Rutas
Vue.js London 2023Vue.js London 2023
30 min
Deja de Escribir Tus Rutas
Top Content
Designing APIs is a challenge, and it's important to consider the language used and different versions of the API. API ergonomics focus on ease of use and trade-offs. Routing is a misunderstood aspect of API design, and file-based routing can simplify it. Unplugging View Router provides typed routes and eliminates the need to pass routes when creating the router. Data loading and handling can be improved with data loaders and predictable routes. Handling protected routes and index and ID files are also discussed.

Workshops on related topic

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.
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.
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
React Advanced 2022React Advanced 2022
148 min
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¿Eres un desarrollador de React tratando de obtener los máximos beneficios de TypeScript? Entonces esta es la masterclass para ti.En esta masterclass interactiva, comenzaremos desde lo básico y examinaremos los pros y contras de las diferentes formas en que puedes declarar componentes de React usando TypeScript. Después de eso, pasaremos a conceptos más avanzados donde iremos más allá de la configuración estricta de TypeScript. Aprenderás cuándo usar tipos como any, unknown y never. Exploraremos el uso de predicados de tipo, guardias y comprobación exhaustiva. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapa de tipo nuevo. Y comenzaremos a programar en el sistema de tipos de TypeScript usando tipos condicionales e inferencia de tipos.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
Workshop
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Workshop
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas