¿Cómo intenta el equipo de TypeScript evitar efectos negativos en el ecosistema de JS?

Rate this content
Bookmark

TypeScript se está convirtiendo en una de las formas dominantes en las que la gente escribe JavaScript. El objetivo de TypeScript es complementar y no reemplazar a JavaScript, por lo que ¿cómo asegura el equipo que el futuro de JS siempre sea JS?

This talk has been presented at JSNation Live 2020, check out the latest edition of this JavaScript Conference.

FAQ

El objetivo principal de TypeScript es trabajar en conjunto con JavaScript, alineándose con las propuestas actuales y futuras de JavaScript, sin agregar sobrecarga en tiempo de ejecución ni cambiar el código JavaScript de entrada.

TypeScript tiene un gran impacto en la industria de JavaScript, ya que su popularidad y su integración con herramientas como Visual Studio y VS Code ayudan a definir cómo se desarrollan y mantienen grandes bases de código, y cómo los desarrolladores interactúan con JavaScript.

Los principios de diseño de TypeScript incluyen no imponer sobrecarga de tiempo de ejecución, alinear con propuestas de JavaScript, preservar el comportamiento de código JavaScript, y utilizar un sistema de tipos estructurales y completamente borrables.

TypeScript utiliza inferencia de tipos y sistemas diseñados para identificar código potencialmente erróneo, proporcionando herramientas para corregirlos antes de que causen problemas en la ejecución.

TypeScript fue creado en parte para resolver problemas de manejo de grandes bases de código en Microsoft y también sirve como una forma de publicidad para Microsoft, incentivando el uso de otros productos como Azure.

TypeScript y TC-39 trabajan de forma colaborativa. TC-39 es un comité que discute el futuro de JavaScript y TypeScript contribuye como un miembro más, ayudando a alinear los objetivos de TypeScript con los de JavaScript.

A diferencia de otros intentos, TypeScript se enfoca exclusivamente en mejorar la gestión de tipos sin modificar la sintaxis base de JavaScript, lo que permite una migración y compatibilidad más fluidas con el ecosistema de JavaScript existente.

TypeScript actúa como un laboratorio de pruebas para nuevas características, donde pueden ser refinadas y probadas en un entorno de desarrollo antes de ser consideradas para inclusión en el estándar JavaScript por TC-39.

Orta Therox
Orta Therox
33 min
18 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La influencia de TypeScript en el ecosistema de JavaScript y su alineación con los objetivos y principios de JavaScript. El impacto de TypeScript en la industria y su popularidad entre los programadores de JavaScript. El objetivo de TypeScript de innovar en tipos sin introducir nuevos conceptos en JavaScript. Los desafíos de ejecutar TypeScript en el código de otras personas y convertirlo en un lenguaje nativo del navegador. La compatibilidad de TypeScript con JavaScript y su objetivo de ser una capa delgada sobre JavaScript. Los esfuerzos para mejorar el soporte para JS y la documentación de JS, y los puntos problemáticos de la transición a TypeScript. El trabajo de accesibilidad en TypeScript y la ausencia de competidores reales en el mercado.

1. Introducción a TypeScript y su Influencia

Short description:

En esta parte, discutiremos la influencia de TypeScript en el ecosistema de JavaScript y cómo el equipo de TypeScript tiene como objetivo alinear TypeScript y JavaScript para crear soluciones innovadoras. También exploraremos el intento de reemplazar JavaScript con TypeScript y obtendremos información sobre los objetivos y principios del equipo de TypeScript. ¡Vamos a sumergirnos!

Muy bien, comencemos a apostar por TypeScript. Así que voy a intentar hablar un poco sobre la influencia de TypeScript en el ecosistema de JavaScript, ya sabes, cómo el equipo de TypeScript trata de limitarse para asegurarse de que, ya sabes, TypeScript y JavaScript sean aliados en el intento de crear cosas geniales en JavaScript. Y luego, ¿cómo sería si hubiera un intento de usurpar JavaScript a través de TypeScript por parte del equipo de Microsoft? Con suerte, con todo esto, todos saldremos un poco más inteligentes y tendremos ideas diferentes sobre cómo todas las piezas encajan. Bien, entonces empecemos. Mi nombre es Ohto the Rocks. He estado trabajando en proyectos de código abierto a gran escala durante mucho tiempo, comenzando con un administrador de dependencias para iOS. Pasando a esta herramienta cultural en muchos lenguajes de programación diferentes que te permite crear reglas de linter en torno a cómo funciona la etiqueta de solicitud de extracción. Y pasé mucho tiempo, recientemente, trabajando en la era de TypeScript, tratando de descubrir cómo construir herramientas complicadas para ello y cómo todas estas piezas encajan. Eso eventualmente me llevó a trabajar a tiempo completo en TypeScript. Y ahora eso significa que tengo mucha perspicacia que creo que sería súper útil y es algo único. Así que voy a intentar hablar sobre cómo todo eso se une. Los objetivos de esta charla son tratar de hacerla un poco diferente a tu charla promedio sobre TypeScript. La mayoría de las charlas sobre TypeScript intentan hablar sobre qué características son útiles o, ya sabes, cómo proporcionar herramientas útiles para el editor, cosas así. Pero esta charla, en realidad, da un paso atrás y trata de pensar en cómo TypeScript afecta a toda la industria. Y tú sabes, lo que el equipo de TypeScript hace para asegurarse de que eso sea completamente copacético. Así que prepárate y lo pasaremos bien. Para empezar, hablaremos un poco sobre el equipo de TypeScript, si no lo sabes. Somos aproximadamente ocho personas que trabajan en el compilador, y alrededor de 20 personas en total. Eso incluye a los gestores de proyectos. Y hay otro equipo completo cuyo trabajo es manejar la integración con Visual Studio, no Visual Studio Code, lo cual es bastante considerable. Y hacen una gran cantidad de seguimiento de errores y se aseguran de que TypeScript tenga la menor cantidad de errores posible. El equipo en sí tiene algunos objetivos a largo plazo y principios. Los dos documentos principales al respecto, son los principios de funcionamiento. Estos tratan de describir, ya sabes, qué representa el proyecto de TypeScript. Entonces, ¿cuál es el objetivo a largo plazo? ¿Cómo nos percibimos en relación a otros lenguajes de programación en comparación con otros lenguajes de programación similares a JavaScript que se transpilan a JavaScript? Estos simplemente dicen, como, ya sabes, así es como nos definimos. Y luego el otro, y potencialmente el más interesante para esta charla, los objetivos de diseño de TypeScript. Hay mucho aquí. Así que lo dividiremos en dos. Así que hay objetivos de diseño para interactuar con JavaScript, ¿verdad? Imponer ningún overhead en tiempo de ejecución en los programas generados es un lenguaje técnico para decir simplemente que, si pones JavaScript en TypeScript, obtienes

2. Influencia y Popularidad de TypeScript

Short description:

TypeScript se alinea con las propuestas actuales y futuras de JavaScript, preservando el comportamiento en tiempo de ejecución y evitando nueva sintaxis. Se enfoca en la inferencia para encontrar errores y hacer que el código sea más mantenible. La popularidad de TypeScript es evidente en su amplio uso entre los programadores de JavaScript. Resuelve problemas reales en bases de código grandes y sirve como una excelente publicidad para Microsoft. El éxito de TypeScript contribuye al crecimiento del ecosistema de desarrollo de Microsoft.

JavaScript de nuevo y no cambiamos las cosas. Y luego el siguiente es alinear con las propuestas actuales y futuras de JavaScript. Así que no crees tu propio lenguaje que se sienta como JavaScript pero haga algo diferente. Y mantente actualizado con los cambios de JavaScript. Hablaremos un poco más sobre eso más adelante. Preservar el comportamiento en tiempo de ejecución de todo el código de JavaScript. También se refiere a la misma idea de JavaScript de entrada y salida. Evitar agregar sintaxis a nivel de expresión, profundizaremos más en esto más adelante. Y utilizar un sistema de tipos estructurales consistentes y completamente borrables. También algo de lo que hablaremos más adelante. Y luego, por otro lado, tienes a JavaScript y luego tienes los tipos. Que son los tipos de TypeScript. Y, ya sabes, TypeScript tiene una forma única de abordar los sistemas de tipos porque no puede crear nueva sintaxis de manera realista, dentro de ciertas limitaciones para ayudar a hacer los patrones de diseño existentes. Así que TypeScript trata de hacer todo lo posible a través de la inferencia. Y su objetivo es encontrar específicamente código que probablemente sea erróneo y proporcionar sistemas para trabajar en ello, en lugar de crear nuevas ideas y nuevos paradigmas en los que las personas puedan escribir código. La idea es, en cambio, hacer que sea más fácil encontrar código incorrecto en lugar de empujar a las personas en una dirección particular.

Además de eso, ya sabes, puedo hablar sobre cómo TypeScript influye en la industria, pero tienes que entender lo grande que es TypeScript para tener una idea de esto. Entonces, ¿qué hace que TypeScript sea grande? Creo que una encuesta reciente que es bastante útil es Stackoverflow. Stackoverflow es un sitio web donde puedes hacer preguntas. Pero una de las cosas interesantes aquí es que no es un ecosistema de desarrolladores específico de JavaScript. Es un sitio que todos los desarrolladores utilizan en casi todos los lenguajes de programación. Entonces, cuando ves los resultados de este tipo de encuestas, sabes que no están directamente orientados a un tipo específico de desarrollador. A la izquierda, puedes ver que TypeScript es el segundo lenguaje más querido en el mundo. Y a la derecha, puedes ver que, básicamente, uno de cada tres programadores de JavaScript también está utilizando TypeScript. Eso es mucho. Hay un montón de programadores de JavaScript, así que debe haber un tercio de un montón de programadores de TypeScript. Y, ya sabes, es posible que te preguntes, bueno, es popular, a la gente le gusta. También hay, como, una pregunta que siempre me hago, que es, ¿cómo se financia TypeScript? ¿Y por qué se creó? Bueno, en parte, porque resuelve problemas reales en la construcción de bases de código grandes en Microsoft y la otra parte es una increíble publicidad para Microsoft. Como, ya sabes, las personas se introducen en los entornos de desarrollo de Microsoft fuera de Windows ahora a través de VS Code y TypeScript, y luego continúan desde allí y piensan, huh, si VS Code funciona bien y TypeScript funciona bien, entonces, tal vez Azure también funcione bien. Oh, el perro ha bajado. Entonces, ya sabes, si quieres más TypeScript

QnA

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

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.
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.
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.
TypeScript y React: Secretos de un matrimonio feliz
React Advanced Conference 2022React Advanced Conference 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.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
WebAssembly enables optimizing JavaScript performance for different environments by deploying the JavaScript engine as a portable WebAssembly module. By making JavaScript on WebAssembly fast, instances can be created for each request, reducing latency and security risks. Initialization and runtime phases can be improved with tools like Wiser and snapshotting, resulting in faster startup times. Optimizing JavaScript performance in WebAssembly can be achieved through techniques like ahead-of-time compilation and inline caching. WebAssembly usage is growing outside the web, offering benefits like isolation and portability. Build sizes and snapshotting in WebAssembly depend on the application, and more information can be found on the Mozilla Hacks website and Bike Reliance site.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
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 Conference 2022React Advanced Conference 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.
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe 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 del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el 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 comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software
Building Your Own Custom Type System
React Summit 2024React Summit 2024
38 min
Building Your Own Custom Type System
Featured Workshop
Kunal Dubey
Kunal Dubey
I'll introduce the audience to a concept where they can have end-to-end type systems that helps ensure typesafety across the teams Such a system not only improves communication between teams but also helps teams collaborate effectively and ship way faster than they used to before. By having a custom type system, teams can also identify the errors and modify the API contracts on their IDE, which contributes to a better Developer Experience. The workshop would primarily leverage TS to showcase the concept and use tools like OpenAPI to generate the typesystem on the client side.