TypeScript Weekly #3: Bun integra comprobador nativo, ts-rust supera a Go y ttsc traslada el linting a compilación

TypeScript · Weekly #3

TypeScript Weekly #3: Bun integra comprobador nativo, ts-rust supera a Go y ttsc traslada el linting a compilación

typescriptTypeScriptboletín semanalcompiladoresruntimes

Fuentes:GitHub Releases + 官方博客 + HN

📦 Actualizaciones de versiones

Evolución de versiones estables y actualización del pipeline de compilación

La versión oficial estable más reciente sigue siendo TypeScript 7.0.2 (publicada el 20 de agosto de 2026). Durante los últimos siete días, el equipo oficial no ha liberado nuevos parches para el compilador. La extensión para editores vscode-typescript/v1.0.1, lanzada el 30 de septiembre, incluye ya empaquetada esta versión del compilador. Para más detalles sobre las transformaciones arquitectónicas de la versión 7.0, puede consultarse: Novedades y arquitectura de TypeScript 7.0.

En la serie actual 7.0, los ajustes de mecanismos fundamentales y su impacto en ingeniería son los siguientes:

Elemento modificadoCambio en la reglaRepercusión práctica en ingeniería
Comprobación concurrente basada en GoEl compilador migró de JS a Go y ofrece el parámetro --checkers para controlar los hilos de trabajo (valor por defecto: 4).Las compilaciones completas se aceleran de 8 a 12 veces en máquinas multinúcleo; en contenedores CI con memoria limitada se debe fijar explícitamente el parámetro para evitar sobrecarga.
Ausencia temporal de la Programmatic APILa versión 7.0 distribuye exclusivamente el binario nativo de CLI y no expone una API de compilador invocable desde Node.js.Herramientas dependientes del AST interno (como typescript-eslint) no pueden conectarse de forma directa y requieren alias @typescript/typescript6 para esquemas de doble compilación.
Modo estricto fijado por defectoActivación por defecto de strict y rootDir: "./"; eliminación de baseUrl y moduleResolution: node, retirando el soporte de target: es5.Los proyectos legados deben limpiar configuraciones obsoletas; la resolución de alias de ruta debe migrarse por completo a las especificaciones nodenext o bundler.

En cuanto al soporte de plataformas, los paquetes binarios de TS 7.0 cubren las arquitecturas estándar de Linux, macOS y Windows; sin embargo, la ausencia de bindings nativos en C++ plantea nuevos retos para su ejecución en contenedores WebAssembly.

📝 Artículos a fondo

El PR #44361 de Bun introduce el comprobador nativo bun check

Qué ocurrió: Jarred Sumner envió el PR #44361 a Bun, adaptando el núcleo de typescript-go 7.0.2 para integrar un comprobador de tipos nativo con unas 150.000 líneas de código nuevo. Introduce el comando bun check y la opción --check. En pruebas sobre un proyecto Next.js con 2.881 archivos fuente, el tiempo de CPU en comprobación completa disminuyó de 6,9 segundos en tsc 7.0.2 a 2,4 segundos, reduciendo el consumo pico de memoria de 1,78 GB a 0,69 GB.

Por qué importa: Tradicionalmente, los runtimes ligeros prescindían de los tipos sin validarlos semánticamente. Bun incorpora la verificación completa en un único proceso y resuelve en memoria el análisis de dependencias de Project References. Validado con 72 proyectos open source (1.103 configuraciones) y 13.000 casos de prueba oficiales, alcanza una tasa de coincidencia diagnóstica del 99,99% y corrige los desvíos ocasionales de números de línea provocados por condiciones de carrera en el Go oficial.

A quién afecta: Ingenieros de frontend y de sistemas que orquestan microservicios, frameworks full-stack y pruebas locales mediante Bun. Las canalizaciones de CI pueden prescindir de contenedores independientes de Node.js dedicados al typecheck.

Enlace: Bun PR #44361: bun check builtin type checker

Comentario del editor: Integrar la comprobación de tipos en un solo proceso es la senda evolutiva natural de los entornos de ejecución modernos. Su consumo máximo de 0,69 GB disipa los riesgos de OOM en contenedores. Dado que no genera archivos de declaración .d.ts ni SourceMaps, la publicación formal de paquetes aún debe conservar el proceso oficial de construcción.

Llega ts-rust (tsc-rs): modelos de lenguaje reescriben TS 7 en Rust en dos semanas y triplican la velocidad de Go

Qué ocurrió: Theo Browne publicó como código abierto pingdotgg/ts-rust (npm: tsc-rs), que migra a Rust el compilador oficial en Go a partir del commit 673a5f17d713 de TS 7.1-dev. Una versión inicial generada mediante modelos de OpenAI consumió 400.000 dólares en tokens en 1,3 millones de líneas de código, pero se estancó en un 84% de compatibilidad. Posteriormente, Claude Opus 5.5 reescribió el proyecto desde cero en dos semanas con un coste de 24.000 dólares en tokens. En las pruebas de T3 Code, tsc-rs completó la ejecución en 5,27 segundos: 3,05 veces más rápido que el tsc 7 oficial en Go (16,10 segundos) y 11,9 veces más rápido que tsc 6 (62,63 segundos).

Por qué importa: El proyecto supera los 181.711 casos de prueba oficiales de transpilación y emite diagnósticos idénticos en 120 bibliotecas reales de código abierto. Integra de forma nativa las reglas de diagnóstico de Effect 4 (rango 377xxx) sin necesidad de complementos secundarios. Su arquitectura en Rust sin recolector de basura despeja el camino para ejecutar comprobadores de tipos en WebAssembly sin sobrecarga. El responsable de TypeScript en Microsoft, Dan Rosenwasser, intervino en Hacker News confirmando el seguimiento del proyecto por parte del equipo.

A quién afecta: Arquitectos de frontend interesados en análisis de tipos en el navegador vía WASM, creadores de herramientas para Rolldown y Rspack, y equipos del ecosistema de Effect.

Enlace: ts-rust: An experimental Rust port of TypeScript 7 compiler

Comentario del editor: Los modelos lingüísticos demuestran una eficacia asombrosa en la traducción mecánica de árboles sintácticos. Sin embargo, una base de código generada automáticamente carece de diseño arquitectónico estructurado por ingenieros, lo que podría acarrear costosos ciclos de regeneración con tokens cada vez que Microsoft modifique los límites de inferencia.

ttsc: motor de plugins y linting integrado en el compilador basado en la arquitectura typescript-go

Qué ocurrió: El creador de Typia, Samchon, presentó la herramienta ttsc, acompañada del runtime de precomprobación ttsx y de @ttsc/lint. Desarrollado sobre la arquitectura typescript-go de Microsoft, recupera la capacidad de extender plugins de transformación AST que había sido retirada en TS 7.0, permitiendo auditar reglas de código durante el mismo paso de inferencia de tipos.

Por qué importa: La retirada de la API de Node.js en TS 7 impedía la actualización de librerías dependientes de macros de compilación y metadatos de tipos (como Typia o TS-Patch). ttsc inyecta middleware directamente en la fase de comprobación del compilador, conservando la introspección de tipos. La herramienta @ttsc/lint incluye más de 720 reglas y ofrece un rendimiento hasta 900 veces superior al de ESLint independiente en repositorios de escala similar a VS Code; @ttsc/graph reduce en un 92% el consumo de tokens en análisis de proyectos realizados por agentes de IA.

A quién afecta: Equipos de backend de alta concurrencia que requieren seguridad estricta en compilación, administradores de grandes monorrepositorios y desarrolladores interesados en unificar linting y comprobación de tipos en CI.

Enlace: samchon/ttsc: A typescript-go toolchain for compiler plugins

Comentario del editor: Anticipar las comprobaciones de estilo al paso de validación de tipos agiliza notablemente los pipelines. No obstante, acoplar de forma rígida el formato y estilo al núcleo del compilador obliga a prescindir de plugins externos altamente personalizados, un coste de migración que debe evaluarse con cautela.

🔥 Debates en la comunidad

Un compilador reescrito por modelos de lenguaje enciende el debate de rendimiento entre Rust y Go

El 8 de octubre, el proyecto pingdotgg/ts-rust abrió un profundo debate técnico en Hacker News (117 puntos, 222 comentarios).

  • Defensores del rendimiento extremo sin recolector de basura: Quienes apoyan Rust recalcaron que la comprobación de tipos en TypeScript implica uniones profundamente anidadas y tipos condicionales complejos, generando una masa de nodos AST transitorios que desestabiliza el recolector de basura de Go. En demonios de LSP de larga duración, la versión en Go elevó su consumo de 4,9 GiB a 7,4 GiB, mientras que Rust se mantuvo estable en 2,9 GiB gracias a gestores de memoria por arenas y tiempos de vida deterministas. Asimismo, la compilación compacta a WASM sitúa a Rust como base óptima para IDEs web.
  • Defensores de la mantenibilidad y la especificación: Ingenieros más prudentes recordaron que TypeScript carece de especificación formal y que su estándar efectivo lo define la implementación del compilador oficial. Microsoft eligió Go por su sintaxis plana, idónea para conservar coherencia lógica con el código original en JS/TS. Cientos de miles de líneas de código generadas por IA sin revisión humana exhaustiva pueden convertirse en cajas negras ante casos límite no documentados, superando con creces los costes iniciales ahorrados.

Enlace: HN: Port of the TypeScript compiler, checker and lsp to Rust, by LLM

Todo el equipo genera 60 PRs mediante IA: el sistema de tipos ante el desafío del “engrosamiento de tipos”

En el debate viral de Reddit r/typescript titulado Every PR on my team is written by AI now (155 puntos, 118 comentarios), un ingeniero de un gran monorrepositorio expuso cómo su equipo fusionó casi 60 PRs redactados íntegramente por agentes de IA, desatando una intensa discusión sobre la evolución del desarrollo de software.

  • Defensores de la eficiencia: Sostienen que, bajo restricciones arquitectónicas claras y con revisiones automatizadas mediante linting estricto y CodeRabbit, los agentes de IA ofrecen una seguridad estática de tipos superior a la de desarrolladores junior o de nivel medio, eliminando excepciones de punteros nulos y permitiendo enfocar los esfuerzos en delimitar el dominio del negocio.
  • Críticos de la pérdida de consistencia global: Arquitectos sénior argumentaron que, al carecer de visión global entre múltiples paquetes, los agentes tienden a crear estructuras de datos duplicadas localmente. Esto genera tipos redundantes con variaciones mínimas dentro del mismo proyecto (por ejemplo, tres definiciones no vinculadas de User), degradando el sistema de tipos de un modelo mental del negocio a un mero validador sintáctico, cuya acumulación afectará negativamente al rendimiento del análisis tipológico durante las compilaciones.

Enlace: Reddit: Every PR on my team is written by AI now

El equipo de Deno se une a Cloudflare y pondrá fin a su runtime independiente en un año

El 9 de octubre, Ryan Dahl anunció la incorporación del equipo completo de Deno a Cloudflare. El runtime independiente de Deno concluirá su desarrollo tras un año de mantenimiento, provocando una notable repercusión en la comunidad de r/typescript (542 puntos, 96 comentarios).

  • Perspectiva del modelo comercial: Varios desarrolladores reflexionaron sobre el techo comercial de los entornos de ejecución independientes. Pese a haber liderado innovaciones como el soporte de TypeScript sin configuración previa, importaciones mediante URL y aislamiento por permisos, los altos costes de capital en infraestructura de nube y la inercia del ecosistema npm dificultaban competir en solitario contra las grandes plataformas en la nube.
  • Reconocimiento del impacto técnico: Otros participantes señalaron que Deno completó satisfactoriamente su misión. Componentes centrales como rusty_v8 y la estandarización de Web APIs se integrarán directamente en la infraestructura global workerd de Cloudflare, mientras que su impulso al soporte directo de TypeScript ha permeado definitivamente en todos los entornos de ejecución modernos.

Enlace: Reddit: Deno is dead, Deno Blog: Joining Cloudflare

🔭 Próxima semana

  • RFC de la Programmatic API en TypeScript 7.1: Seguimiento de los debates de diseño en el repositorio oficial de GitHub sobre la reimplementación de la API de compilación para Node.js, evaluando si el nuevo diseño requerirá una capa intermedia FFI;
  • Validación Canary en producción de Bun check: Observación de los paquetes de distribución tras la incorporación del PR #44361 a la rama principal de Bun, monitorizando la estabilidad de memoria y la precisión de diagnósticos en grandes monorrepositorios.