TypeScript 6.0 dan masa depannya yang berasaskan Go

Kemaskini terakhir: 03/18/2026
Pengarang C SourceTrail
  • TypeScript 6.0 ialah keluaran utama terakhir pada pengkompil JavaScript dan menyediakan projek untuk TypeScript 7.0 berasaskan Go natif yang akan datang.
  • Kemas kini ini mengetatkan tetapan lalai (mod ketat, sasaran ES moden, modul ESM), menambah API platform baharu dan memperkenalkan bendera pesanan jenis yang stabil.
  • Banyak pilihan legasi dan format modul (ES5, AMD/UMD/SystemJS, baseUrl, resolusi klasik) telah ditamatkan sebelum penyingkiran penuhnya dalam 7.0.
  • Peningkatan prestasi daripada penulisan semula Go menjanjikan binaan kira-kira 7–10x lebih pantas, penggunaan memori yang lebih rendah dan perkakasan editor yang lebih responsif untuk pangkalan kod yang besar.

Masa depan TypeScript 6.0 berdasarkan Go

TypeScript 6.0 sama seperti versi yang unik: tidak ada lelaran atau lelaran secara solo, sama ada ultima gran entrega construida sobre el compilator sebenar dalam JavaScript, el mismo que viene evolucionando desde los primeros días del proyecto. Sebilangan besar, todo el foco se desplaza hacia TypeScript 7.0, satu reimplementación nativa escrita en Go pensada for ofrecer compilaciones muchísimo más rápidas, menor consumo de memoria y un servicio de lenguaje mucho más reactivo en codees como.

Dalam amalan, TypeScript 6.0 bertindak seperti yang boleh didapati di sini baris 5.9 y la futura 7.0: ajusta por defecto muchas opciones de compilación for alinearlas con la realidad moderna del ecosistema JavaScript, introduce nuevas capacidades de tipado y APIs estándar, y al sendiri tiempo depreca buena part de la herencia acumulada durante más de una década (sasaran de módulossnderabs de configuration) que ya no tienen sentido pada 2026). Todo ello mientras mantiene, en esencia, el mismo model de tipos que los desarrolladores ya conocen.

TypeScript 6.0 sebagai versi akhir penyusun klasik

Microsoft telah menyediakan penjelasan untuk TypeScript 6.0 untuk versi terakhir datuk bandar yang menyokong kompilasi kompilasi dalam JavaScript, sejarah conocido seperti “Strada”. Dalam bahagian 7.0, ia adalah protagonismo pasa al nuevo backend nativo en Go, dengan nama "Corsa", kerana ia boleh digunakan dalam bentuk binaan pada waktu malam dan satu pelanjutan khusus untuk VS Code orientada and pruebas reales.

Esta reescritura en Go no cambia el lenguaje en sí, sino la tecnología templeada untuk analisa, chequear y, cuando se necesite, emitir JavaScript. El objetivo es atacar de frente problems que se han ido haciendo más visibles con los años: tiempos de arranque lentos del servicio de lenguaje en proyectos grandes, compilaciones que se alargan minutos en CI y un consumo de memoria elevado cuando el tamaños del monorepo se di.

El equipo ha publicado cifras de rendimiento muy agresivas que comparan el compilador actual con el nativo en proyectos reales. Código como el de VS Code (alrededor de 1,5 millones de líneas) pasa de tardar en torno a 77,8 segundos en un análisis completo con el compilador clásico and unos 7,5 seconds con el compilador en Go, es decir, máceso más. Penulis drama, dengan 356.000 líneas, baja 11,1 segundos a 1,1, y TypeORM, con 270.000 líneas, de 17,5 a 1,3.

Estos números no solo implican builds más rápidas en CI; tambien cambian la experiencia diaria en el editor. En el propio monolito de VS Code, el tiempo de arranque del servicio de lenguaje cae aproximadamente de 9,6 detik dan 1,2, con una reducción de memoria a la mitad. Bagi banyak persamaan, eso significa que ya no hace falta aceptar como “normal” esperar varios segundos cada vez que abren el editor or ejecutan un chequeo completo con tsc --noEmit.

El salto de rendimiento no viene solo del hecho de compilar a código nativo, sino también de la capacidad de usar multi-threading con memoria compartida. El compilador en Go puede paralelizar el análisis dentro de un único proyecto y también orquestar la compilación de múltiples proyectos en paralelo cuando se emplean referencias de proyecto y el modo --build. Todo ello combinado con una nueva implementación de compilaciones incrementales.

Masa depan pengkompil TypeScript dalam Go

¿Por qué reescribir TypeScript en Go y no en Rust u otro lenguaje?

Satu de las decisiones más comentadas ha sido la elección de Go como lenguaje for el nuevo compilador, en lugar de Rust, C++ u otras opciones típicamente asociadas al alto rendimiento. A primera vista puede sorprender, sobre todo en un ecosistema donde muchas herramientas de nueva generación (SWC, oxc, dsb.) se han reescrito en Rust.

El equipo de TypeScript mempunyai pelbagai motivos prácticos for esta apuesta por Go: por un lado, pengumpul semula sampah dan menyesuaikan diri anda dengan penaung asignación de memoria que exhibe un compilador, reduciendo la carga de gestionar manualmente la memoria en un código de esta complejidad. Oleh itu, struktur lenguaje y su model de types permiten un traslación relativamente directa desde el código TypeScript existente, en contraste con el style más intrusivo que exigiría portar todo a Rust.

Tambien pesa mucho la propia filosofía de Go: un lenguaje sencillo, con pocas formas “creativas” de hacer lo mismo y una fuerte orientación a la claridad del código. Cuando se trata de mantener un proyecto critico y de larga vida como el compilador de TypeScript, esta sencillez se traduce en un coste de mantenimiento menor y en satu base de código más accesible for futuros colaboradores.

Oleh itu, tiada kritikan terhadap Rust, tiada satu alineación pragmática entre el style de Go y la cultura de TypeScript. Ambos lenguajes tienden a priorizar que las cosas “simplemente funcionen” de forma predecible, por encima de la experimentación con rasgos de lenguaje avanzados or models de memoria extremadamente sofisticados que podrían complicar la vida diaria del equipo.

En paralelo al compilador, la migración también aprovecha la adopción más profunda del Protocolo de Servidor de Lenguaje (LSP), lo que facilitará que otros editores distintos de VS Code puedan hablar el mismo “idioma” con el nuevo backend y beneficiarse de su rendimiento sin depender de integraciones ad hoc específicas.

Qué aporta realmente TypeScript 6.0 hoy

Aunque toda la atención mediática se la lleve el compilador en Go, TypeScript 6.0 memperkenalkan cambios reales dan boleh dilihat dalam setiap hari, sobre todo en forma de nuevos valores por defecto, mejoras de types and alineación con las últimas especificaciones JavaScript. Idea ini adalah, dengan menggunakan 7.0, laut transición yang lebih baik daripada yang mungkin dilakukan oleh mayoria de proyectos ya habrán aceptado las nuevas reglas del juego.

Uno de los cambios estrella es que el modo estricto (strict) pasa a estar activado por defecto. Durante años, muchas guías recomendaban arrancar cualquier proyecto serio con "strict": true, tetapi el valor por defecto seguía siendo false. 6.0 asumsi que la mayoría de desarrollos modernos prefieren un model de tipos más exigente, y reserva la opción de desactivarlo for casos puntuales añadiendo explícitamente "strict": false en tsconfig.json.

Tambien se actualizan los defaults relacionados con módulos y target. El nuevo valor por defecto de module es esnext, reflejando que el ecosistema se ha decantado definitivamente por ESM como formato principal, ya sea directo en Node.js y navegadores modernos or tras market por un bundler. A su vez, el target implicito pasa a ser la versionón ECMAScript del año más reciente que TypeScript menyokong (sebenarnya es2025), un movimiento que asume la omnipresencia de runtimes evergreen y deja de optimizar por plataformas tan antiguas como ES5.

Satu lagi kebaharuan penting ialah noUncheckedSideEffectImports viene ahora activado por defecto. Terdapat pilihan untuk mengesan import secara solo se realizan por sus efectos secundarios y que a menudo esconden errores typegráficos or dependencias que realmente deberían ser referenciadas de forma explícita en el código. Activarla de serie eleva el listón de robustez de los proyectos nuevos.

Sebaliknya, pilihan libReplacement se desactiva por defecto porque, en la inmensa mayoría de proyectos, no hace nada útil hasta que se configuran otras piezas y, sin embargo, sí añade cierto coste en forma de resoluciones de módulo fallidas. Con la tendencia general a simplificar ya no pagar por lo que no se usa, lo razonable era apagarla salvo que un proyecto la necesite conscientemente.

Cambios en inferencia y tipado: kurang sensibilidad al contexto en funciones sin this

Además de los ajustes de configuración, TypeScript 6.0 termasuk cambio minat dan jenis infier types en algunos patrones problemático. Un caso clásico se daba al pasar literales de objeto con métodos donde una de las funciones tenía parámetros sin anotar y dependía del genérico inferido a partir de otra propiedad, lo que podía romperse según el orden de las claves.

Khususnya, las funciones escritas con sintaxis de método tienen un parámetro this implicito que hacía que el compilador tratase esos callbacks como "sensibles al contexto". Cuando la inferencia de tipos for un generico y la obtención del type contextual tiraban en directions opuestas, TypeScript prefería saltarse esos callbacks a la hora de inferir, y acababa marcando como unknown parámetros que en realidad estaban perfectamente determinados por otras parts del mismo literal de objeto.

En 6.0, el compilator pasa a considerar que una función no es sensible al contexto si el parámetro this nunca se utiliza dentro de su cuerpo. De esta forma, un función declarada como método but que no hace referencia a this se trata de forma muy serupa dengan fungsi anak panah, lo que permite aprovecharla como fuente de information for la inferencia de tipos, independientemente del orden de las propiedades en el objeto.

Ini betul-betul kurangkan satu categoría de errores de type confusos donde el desarrollador veía un parametro inferido como unknown sin entender muy bien por qué. Se trata de un cambio de ergonomía pura: el model de tipos subyacente no cambia, tetapi la heurística de inferencia se alinea mejor con lo que la mayoría de desarrolladores espera que ocurra en estos casos sencillos.

Import subpath con prefijo #/ y mejoras en resolución de módulos

TypeScript 6.0 boleh digunakan untuk menyokong import subpath mengikut spesifikasi spesifikasi Node.js. Hasta hace poco, al declarar el campo imports en package.json, los alias internos debían empezar con # seguido de algún texto, sebagai contoh #root o #utils. Esta restrictions resultba un tanto arbitraria cuando el único objetivo del alias era, en la práctica, tener un prefijo stable for el código de producción.

Las versiones recientes de Node 20 permiten definir subpaths que arrancan con #/, es decir, sin un identificador “intermedio” obligatorio. Esto simplifica esquemas muy habituales, similares a lo que muchos desarrolladores ya usan con bundlers, donde se prefiere @/... o #/... como raíz logica del proyecto.

TypeScript incorpora este comportamiento bajo los modos de resolución de modulo node20, nodenext y bundler. Eso significa que proyectos que utilicen "imports": { "#": "./dist/index.js", "#/*": "./dist/*" } en package.json pueden ahora disfrutar de autocompletado y comprobación de types coherentes con la forma en que Node resuelve esas rutas.

Praktik yang lebih besar ialah kemungkinan gabungan --moduleResolution bundler dengan --module commonjs. Hasta ahora, la resolución bundler estaba limitada a módulos esnext o preserve, pero con la deprecación de --moduleResolution node (Alias node10), muchas bases de código que siguen emitiendo CommonJS memerlukan satu ruta de migración razonable. Esta combinación cubre precisamente ese hueco.

La nueva bandera –stableTypeOrdering y la preparación para paralelismo en 7.0

Uno de los cambios estructurales más profundos del compilador nativo en 7.0 es la adopción de un model de análisis paralelo real, donde multiples “trabajadores” pueden recorrer el árbol de sintaxis y el grafo de tipos en paralelo. Esto plantea un problem curioso: si los IDs internos de tipos y símbolos dependent del orden en el que se descubren, el resultdo puede volverse no determinista cuando el orden de visita deja de estar perfectamente definido.

En el compilador actual, los types reciben un identificador incremental según el orden en el que se encuentran, y estos IDs se usan, entre otras cosas, para ordenar uniones y listas de propiedades. Eso explica por qué en 5.x el orden de un tipo como 100 | 500 podía invertirse a 500 | 100 si se introducía una constante literal 500 antes que cualquier mención a 100 dalam Fail.

En 7.0 este comportamiento se vuelve in acceptable, porque la ejecución paralela podría hacer que dos procesos distintos generasen órdenes diferentes for el mismo program. La solución ha sido diseñar un algoritmo de ordenación determinista basado en el contenido de los objetos de tipo y símbolo en lugar de en el orden de descubrimiento. De esta manera, la misma unión siempre se imprimirá de la misma forma (100 | 500, sebagai contoh), independientemente de cómo se haya recorrido el código.

Untuk ayudar dan kelengkapan pengesan percanggahan sebelum berhijrah, TypeScript 6.0 memperkenalkan pilihan --stableTypeOrdering. Al activarla, el compilador clásico adopta la misma estrategia de ordenación de tipos que usrá 7.0, reduciendo así el ruido al comparar salidas entre ambas versiones, ispecialmente en ficheros declaración emitidos and en mensajes de error.

Anda harus ingat bahawa --stableTypeOrdering tiene un coste de rendimiento appreciable, con ralentizaciones de hasta un 25% en algunos proyectos. La recomendación oficial es usarla de forma táctica durante fases de migración or depuración de diferencias, no como configuración permanente en todos los entornos.

Nuevos sasaran y API de plataforma: es2025, Temporal, upsert y RegExp.escape

TypeScript 6.0 menggabungkan sasaran dan bersambung dengan biblioteka es2025 begitu banyak untuk target seolah-olah lib. Aunque ES2025 tidak memperkenalkan nuevas construcciones de lenguaje, sí consolida varias APIs que han alcanzado ya el state final en el proceso de estandarización, como RegExp.escape, kaedah baharu en Promise, pengumpul dan iteradores.

En este nuevo nivel, algunas declaraciones que antes vivían bajo esnext berpindah ke es2025termasuk Promise.try, kaedah baharu Iterator y operaciones añadidas a Set. Diizinkan untuk melaksanakan projek yang boleh diputuskan dengan penyatuan yang tidak dapat dielakkan dengan menggunakan API yang tidak dapat dielakkan dengan pilihan yang sama dengan "eksperimen" esnext.

Uno de los grandes protagonistas en 6.0 es la incorporación de tipos for la API Temporal, la esperada sustituta de Date dalam JavaScript. Temporal, pada peringkat 3 y en camino de ser incorporada a la plataforma, ofrece tipos precisos para instantes, fechas, horas, zonas horarias y calendarios, y evita muchos de los errores clásicos asociados al sistema de fechas actual.

TypeScript expone los types de Temporal cuando se apunta a esnext o se indica explícitamente "lib": o "esnext.temporal". Mungkin ada percubaan dengan Temporal sendiri dan masa larian yang disediakan untuk menyokong atau mengisi poli perantara, menyokong lengkap autolengkap dan cek jenis.

Otra novedad que aterriza en el ámbito de colecciones es el soporte de tipos for los métodos “upsert” de Map y WeakMap: getOrInsert y getOrInsertComputed. Formalizados en un propuesta ECMAScript que ha alcanzado stage 4, estos métodos codifican un patrón muy frecuente: “s existe la clave, úsala; si no, inserta este valor (o el resultdo de esta función) y devuélvelo”.

dengan getOrInsert, el código que antes hacía una secuencia de has, get, set y almacenamiento temporal puede reducirse a una llamada clara y tipada. Y getOrInsertComputed membenarkan retrasar el cálculo del valor por defecto hasta que se confirma que la clave no estaba presente, lo que evita costes innecesarios cuando las rutas de ejecución raramente requieren el fallback.

Dalam paralelo, 6.0 tipa la nueva función estática RegExp.escape, otra propuesta ya aprobada por TC39. Este método recibe satu cadena y devuelve satu versi escapada segura para interpolar en literales de expresiones regulares, librando a los desarrolladores de escribir de memoria patrones de escape y reduciendo el riesgo de vulnerabilidades or bugs sutiles en búsquedas textuales.

Actualizaciones del DOM y librerías globales: dom.iterable integrado y reconfiguración de lib

La percuma DOM de TypeScript boleh didapati di dalam 6.0Fail-fail itu lib.dom.iterable.d.ts y lib.dom.asynciterable.d.ts, que antes se incluían opcionalmente para entornos sin soporte de Iterable y AsyncIterable, se consideran ahora parte integral de lib.dom.d.ts.

En la práctica, esto significa que ya no es necesario añadir "dom.iterable" a la matrice "lib" untuk mengubah arahan supaya semua koleksi DOM seperti ini NodeList o HTMLCollection. Dengan "lib": basta, algo logico en un mundo en el que los navegadores sin soporte de iteradores son prácticamente inexistentes.

Si un proyecto ya declaraba tanto dom sebagai dom.iterable, puede simplificar su configuración sin pérdida de funcionalidad. Los nombres de librería adicionales siguen siendo válidos, but sus archivos subyacentes han pasado a estar vacíos porque todo su contenido se ha fusionado con la librería principal del entorno web.

Un cambio de mucho más calado afecta al campo types de compilerOptions en tsconfig.json. Hasta ahora, cuando types tidak khusus, TypeScript escaneaba node_modules/@types dan incluía de forma implicita todos los paquetes de types disponibles, introduciendo en el ámbito global símbolos procedents de @types/node, @types/jest y otros paquetes, aunque el código no los importase directamente.

Keserasian implicaba un coste important en proyectos grandes or monorepos donde podían coexistir cientos de dependencias transitivas de types, además de introducir ruido y possibles conflictos entre definiciones globales que en realidad no se necesitaban. En 6.0, el valor por defecto de types pasa a ser un array vacío [].

La consecuencia práctica es que, a partir de ahora, los proyectos deben declarar explícitamente qué paquetes de tipos globales desean cargar, por ejemplo "types": . Banyak equipos verán cómo su tiempo de compilación mejora sensiblemente (entre un 20% y un 50% según los data que comparte Microsoft) laksana untuk menghapuskan carga indiscriminada de types que nunca usan.

Untuk quienes necesiten mantener el comportamiento antiguo de “cargarlo todo”, sigue existiendo la opción de poner "types": , que reactivará la enumeración masiva de @types. Tidak ada halangan, cadangan menyediakan peralatan yang boleh dipilih dan senaraikan secara solo untuk paquetes penting, seperti yang ditunjukkan dalam ramalan.

rootDir, tsconfig dan otros ajustes sutiles de comportamiento

Otro cambio relevante en la configuración por defecto es la nueva semántica de rootDir. Sebelum ini, tidak ada yang menunjukkan ekspresi, TypeScript infería la raíz del proyecto como el directorio común que contenía todos los archivos de entrada no declarativos. Esto obligaba al compilador a analizar rutas de todos los archivos antes incluso de empezar a emitir, complicando la logica y añadiendo coste.

En 6.0, el valor por defecto de rootDir pasa a ser simplemente el directorio donde vive el tsconfig.json. Solo en el caso de ejecutar tsc desde la línea de comandos sin fichero de configuración se sigue aplicando la heurística de inferir la raíz a partir de los archivos de entrada.

Si un proyecto daba por sentado que la raíz común de su código fuente estaba, sebagai contoh, en ./src y esperaba que los archivos compilados acabasen directamente en ./dist, ahora puede encontrarse con rutas como ./dist/src/index.js. Penyelesaian adalah eksplisit dalam konfigurasi yang sama "rootDir": "./src" y ajustar el patrón de include secara berturutan.

Terdapat tambien un pequeño tetapi penting cambio en el comportamiento de la CLI cuando se invoca tsc con nombres de archivo en un directorio que ya contiene un tsconfig.json. Hasta ahora, el fichero de configuración se ignoraba silenciosamente, lo que generaba mucha confusión sobre qué opciones se estaban aplicando realmente. Dalam bahagian 6.0, ini menghasilkan ralat yang jelas, disertakan dengan mensaje de que tsconfig.json no se cargará mientras se sigan pasando archivos en la línea de comandos.

Si la intención es precisamente ignorar el tsconfig.json y compilar archivos de forma ad hoc, wujudkan bendera nuevo --ignoreConfig que nyahaktifkan ralat ini y deja actuar a tsc con sus propios valores por defecto, sin mezclarlos con la configuración del proyecto.

Deprecaciones clave: ES5, sistemas de módulos clásicos, baseUrl y más

Satu bahagian yang menyokong TypeScript 6.0 terdiri daripada ciri-ciri yang sudah lapuk atau pilihan penghapusan arahan dan ciri-ciri yang tidak berkaitan dengan realiti ekosistem. Todas estas deprecaciones se pueden “silenciar” en 6.0 mediante "ignoreDeprecations": "6.0" dalam la configuración, tetapi el mensaje Microsoft es claro: en 7.0 dejarán de existir.

Di tempat asal, tidak ditetapkan sasaran es5, que durante mucho tiempo fue clave for soportar navegadores antiguos como Internet Explorer. Con la desaparición de IE y la hegemoni absoluta de navegadores evergreen, la base de usuarios que todavía requiere ES5 como salida primaria es residual. El nuevo mínimo razonable pasa a ser es2015, y quien aún necesite ES5 deberá recurrir a un herramienta externa addicional for downleveling.

Relacionado con esto, la bandera --downlevelIteration pierde sentido y se marca también como deprecada. Su único propósito era controlar la semántica de iteradores al apuntar a ES5; dan objetivos modernos no tiene efecto alguno, de modo que cualquier uso de ella en 6.0 dispara una advertencia.

Oleh el lado de los módulos, dejan de estar soportados los valores amd, umd, systemjs y none untuk pilihan module. Estos formatos fueron fundamentales en los tiempos anteriores a la adopción masiva de ESM y bundlers modernos, but hoy apenas se emplean en nuevos desarrollos. Jika satu aplikasi bergantung kepada ellos, cadangan ialah migrasi dan modul ECMAScript dan delegar bagi keserasian sejarah dalam satu bundler atau dedicada herramienta, atau kekal selama-lamanya dalam rama 5.x.

Begitu juga, --moduleResolution node (juga dipanggil node10dan --moduleResolution classic se declaran obsoletas en favor de nodenext y bundler. La primera refleja con precisión el comportamiento actual de Node.js en material de resolución de módulos (incluyendo condiciones de export, package.json modernos, dll.), mientras que la segunda está pensada for escenarios dominados por bundlers, Bund y otras similars.

Satu de las deprecaciones que más impacto puede tener en configuraciones existentes es la desaparición de baseUrl como mecanismo de lookup untuk modul. Sejarah boleh digunakan untuk prefijar paths, tetapi tidak perlu mengambil kira satu raíz de búsqueda general, lo que llevaba a “resolver” imports que en realidad jamás funcionarían en tiempo de ejecución. En 6.0 se anima dan eliminar baseUrl y reemplazarlo por entradas de paths explícitas con la ruta completa, o añadir un comodín "*": solo en el caso de que de verdad se desee ese comportamiento de raíz virtual.

También desaparece la kemungkinan de fijar esModuleInterop y allowSyntheticDefaultImports a false. Durante años, la configuración recomendada ha sido activar estas opciones for evitar sorpresas al importar módulos CommonJS desde código ESM. Con 6.0, el compilador asume por defecto el modo “interop seguro” y obliga a justar los imports que dependían de la semántica antigua, por ejemplo cambiando importacion stylees import * as express from "express"; oleh import express from "express";.

Bendera alwaysStrict deja igualmente de poder desactivarse. Praktik kesan, untuk membuat pertimbangan dalam mod estricto JavaScript, untuk mempengaruhi prinsipal penggunaan palabra yang disimpan seperti await, static, public o private como identificadores en código “no estricto” ya algunos matices sobre el valor de this dan fungsi. Los casos que todavía dependan de estas particularidades deberán refactorizarse.

Por último, se elimina --outFile como opción de concatenación de múltiples entradas en un solo fichero de salida. Jangan lupa untuk membuat projek mayoria de proyectos se apoya en bundlers seperti Webpack, Rollup, esbuild, Vite o Parcel, menjaga dan mini bundler dentro TypeScript ya tidak boleh dipertimbangkan sebagai inversi buena. Quienes lo utilizaban necesitarán introducir una herramienta de empaquetado en su pipeline.

Cambios de sintaxis y directivas: ruang nama, penegasan import y no-default-lib

Lebih banyak pilihan penyusun, TypeScript 6.0 memperuntukkan pelbagai kegunaan sintaksis berikut untuk masuk ke dalam konflik dengan perkembangan masa depan JavaScript. Un caso yang terkenal ialah el uso de la palabra clave module untuk mengisytiharkan ruang nama, satu kostum de las primeras versiones del lenguaje.

Selepas ini, la form recomendada declarar namespaces es con la palabra namespaceWalaupun module dan lain-lain marcando seperti obsoleta dan editor. Dengan 6.0, ese uso de module pasa a considerarse directamente inválido, entre otras cosas porque futuras propuestas de blok modul en JavaScript turut dimasukkan ke dalam pertembungan konseptual dengan sintaksis antigua.

Esto no afecta a las declaraciones de módulos externos con declare module "paquete" { ... }, que siguen plenamente soportadasSolo se prohíbe el patrón module Foo { ... } usado como si fuera un namespace clásico encapsulatdo miembros.

Otra pieza que se alinea con los estándares es el abandono de la sintaksis de "import asersions" basada en la palabra clave asserts. La propuesta original del comité TC39 evolucionó hacia “import attributes”, que emplean la palabra with en su place. En consecuencia, expresiones como import data from "./file.json" asserts { type: "json" } ahora se marcan como error y deben reescribirse utilizando with.

Akhir sekali, arahan slash tiga kali ganda /// <reference no-default-lib="true"/> deja de ser sokortada. Esta anotación boleh digunakan untuk indicar que no debían cargarse las librerías estándar por defecto, tetapi su semántica era confusa y se prestaba a malentendidos. A cambio, se recomienda utilizar flags claros como --noLib o --libReplacement bergantung pada kesan yang diingini.

En el ámbito del análisis de JavaScript con JSDoc, el compilador native tombien aprovecha to simpler el soporte de patrones especiales como @enum o @constructor. Aunque esto se concreta más en 7.0, ya se advierte que ciertos atajos “relajados” de tipado en archivos .js dejarán de funcionar igual y pueden dar place and más errores reportados, lo que empuja a documentar los types de forma más explícita.

Lihat bersama-sama, TypeScript 6.0 mengubah suai bahagian besar dalam konfigurasi dan keserasian terkumpul tahan lama untuk satu reka bentuk untuk menyesuaikan diri dengan sistem ESM, navigasi malar hijau, bundlers moden dan ketat mengikut peraturan, dejando untuk senarai yang boleh digunakan dalam dunia eksposur. máximo el paralelismo y ofrecer una experiencia de desarrollo mucho más rápida sin arrastrar lastre histórico.

typescript
artikel berkaitan:
TypeScript 5.9: Pengalaman Pembangun yang Dipertingkatkan dan Pandangan Pada Masa Depan
Related posts: