What microsoft/TypeScript shipped
Written by FoxPlug from the repository's own releases; not affiliated with Microsoft. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/microsoft/TypeScript; Microsoft did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- The API package was prepared for beta release, dropping the unstable prefix from exports, renaming api.internal to api.debug, and relocating the node formatting helper to the language service. Pull request #64681
- DOM types were updated with new APIs and HTML sanitization support. Pull request #64604
- Iterator methods were added to esnext. Pull request #64095
- Symbols were split into header and data parts so instantiated symbols share the data part with the original, shrinking them from 96 bytes to 24 bytes. Pull request #64691
- Paged link stores were changed to a dense implementation because the paged version wastes up to 80 percent of storage when compilation uses multiple checkers. Pull request #64711
- API client modules are now exposed from the VS Code extension so third-party extensions can connect a version-matched client to the running server. Pull request #64647
- One node builder is now cached per emit resolver, and the emit resolver emit context is scoped. Pull request #64649
- Emit crashes on malformed destructuring assignments were fixed. Pull request #64651
- An emit crash for duplicate private names in decorated classes was fixed. Pull request #64670
- A file's imports now restart when a later arrival lowers its
node_modulesdepth. Pull request #64632
Why it matters
This week touched both compile-time efficiency and everyday stability. Symbols now use far less memory when instantiated and the new dense link stores avoid wasted storage with multiple checkers, while fixes landed for several crashes and flaky diagnostics that could surface in emit or the API. The API also moved closer to a beta release with cleaner export names.
Changelog entry
- Prepare API for beta: remove unstable prefix, rename api.internal to api.debug, move formatNodeForInsertion to the language service. Pull request #64681
- Update DOM types with new APIs and HTML sanitization. Pull request #64604
- Add iterator methods to esnext. Pull request #64095
- Split Symbol into header and data parts; instantiated symbols share the data part and shrink from 96 bytes to 24 bytes. Pull request #64691
- Replace paged link stores with dense link stores to avoid wasted storage with multiple checkers. Pull request #64711
- Expose API client modules from the VS Code extension. Pull request #64647
- Cache one node builder per emit resolver and scope the emit resolver emit context. Pull request #64649
- Fix crashes on malformed destructuring assignments during emit. Pull request #64651
- Fix emit crash for duplicate private names in decorated classes. Pull request #64670
- Fix workspace/symbol crash on an inferred project without a program. Pull request #64642
- Restart a file's imports when a later arrival lowers its
node_modulesdepth. Pull request #64632 - Remove legacy localization handbacks. Pull request #64620
This week: API prepared for beta with renamed exports, DOM types updated with new APIs and HTML sanitization, iterator methods added to esnext, instantiated symbols shrunk from 96 to 24 bytes, dense link stores replacing paged ones, and several emit crash and flaky diagnostic fix
Work this week covered efficiency, stability, and API readiness. Instantiated symbols now share data with the original symbol and shrink from 96 bytes to 24 bytes, and paged link stores were replaced with a dense implementation to avoid wasted storage when multiple checkers run. The API package was prepared for beta release by removing the unstable prefix, renaming the internal namespace to debug, and moving a node formatting helper. DOM types gained new APIs and HTML sanitization support, and iterator methods were added to esnext. Stability fixes include emit crashes on malformed destructuring and duplicate private names in decorated classes, a crash on inferred projects without a program, and several flaky diagnostics.
Week of September 28, 2026
What shipped
- Support for TC39 Source Phase Imports added to the compiler. Pull request #63915
- Promise.allKeyed and Promise.allSettledKeyed added to esnext library definitions. Pull request #64093
- File paths now strongly typed to distinguish between OS-dependent map keys and regular strings. Pull request #64159
- Binder-produced symbols now owned by SourceFiles in the client API, matching server behavior. Pull request #64518
- Cycle detection improved when serializing array and tuple types to prevent infinite recursion. Pull request #64556
- Empty named imports now elided next to default imports when verbatimModuleSyntax is enabled. Pull request #64578
- Watch mode rebuild fixed for projects located close to filesystem root. Pull request #64366
- VS Code extensions can now install LSP middleware on language feature responses. Pull request #64583
- Declaration emit now reports cyclic structures and truncation instead of silently producing elided any types. Pull request #64461
- Pure return type inference now filtered by constraint during recursive call resolution. Pull request #64530
Why it matters
This week brings language feature support through source phase imports and improved library types for Promise methods. Multiple fixes address long-standing issues with type inference, watch mode, and declaration emit that affect correctness and reliability of the compiler.
Changelog entry
- Added support for TC39 Source Phase Imports Pull request #63915
- Added Promise.allKeyed and Promise.allSettledKeyed to esnext library types Pull request #64093
- Strongly typed file paths to distinguish OS-dependent map keys from regular strings Pull request #64159
- Binder-produced symbols now owned by SourceFiles in client API Pull request #64518
- Improved cycle detection when serializing array and tuple types Pull request #64556
- Empty named imports now elided with default imports under verbatimModuleSyntax Pull request #64578
- Fixed watch mode rebuild for projects located close to filesystem root Pull request #64366
- VS Code extensions can install LSP middleware on language feature responses Pull request #64583
- Declaration emit now reports cyclic structures and truncation warnings Pull request #64461
- Fixed spurious circularities when contextually typing static properties Pull request #64525
- Fixed crash with statement handling Pull request #64574
- Corrected Array.at documentation from 'code unit' to 'item' Pull request #64536
New source phase import support, Promise.allKeyed/allSettledKeyed library types, improved cycle detection, watch mode fixes for filesystem root projects, and better declaration emit reporting in this week's TypeScript updates.
TypeScript updates this week include support for TC39 Source Phase Imports, new Promise.allKeyed and Promise.allSettledKeyed library types for esnext, improved cycle detection in type serialization, fixed watch mode for projects near filesystem root, better handling of binder symbols in the API, and enhanced declaration emit reporting for cyclic structures instead of silent elision.
Week of September 21, 2026
What shipped
- Build Orchestrator API implemented, providing async methods to build projects and manage references. Pull request #64158
- Standalone created source files now acquire from the global parse cache and return a disposable lease for better resource management. Pull request #64434
- Module resolution overrides added, allowing isolated arbitrary resolveModuleName calls and override mechanisms in API programs. Pull request #64299
- Tsc -b now schedules projects by dependency depth to reduce builder idle time on upstream projects. Pull request #64220
- Incremental caching added to all codegen tasks, reducing time by up to 80% when cached results are reusable. Pull request #64331
- Never type now correctly treated as non-mutable-array-like when deciding readonly tuples. Pull request #64389
- Object property completions now respect quote preference for non-identifier property names. Pull request #64359
- Global diagnostic collection now matches Strada's approach and hides non-diagnostic global errors in the editor. Pull request #64452
- Tsconfig plugins now parsed for external error reporting, and MappedType properties exposed. Pull request #64397
- Enum generator moved from Herebyfile into tools scripts for better organization. Pull request #64391
Why it matters
This week brings improvements to the API layer with new orchestration and module resolution capabilities, performance optimizations in build systems and codegen caching, and fixes to diagnostic handling and type narrowing. These changes make incremental builds faster, improve resource management in the public API, and fix edge cases in type checking.
Changelog entry
- Build Orchestrator API with async buildReferences, clean, and cleanReferences methods Pull request #64158
- Standalone source files created via API now use global parse cache and return disposable leases Pull request #64434
- Module resolver API allowing isolated resolveModuleName calls and module resolution overrides Pull request #64299
- Tsc -b now schedules projects by dependency depth to reduce builder idle time Pull request #64220
- Incremental caching for all codegen tasks Pull request #64331
- Never type correctly treated as non-mutable-array-like for readonly tuple inference Pull request #64389
- Object property completions now respect configured quote preferences Pull request #64359
- Global diagnostic collection now matches Strada implementation Pull request #64452
- Tsconfig plugins parsed for external error reporting Pull request #64397
- Enum generator moved from Herebyfile to scripts directory Pull request #64391
TypeScript improvements this week: Build Orchestrator API, module resolution overrides, incremental codegen caching (up to 80% faster), better project scheduling for tsc -b, and fixes to readonly tuples and quote preferences.
This week's TypeScript updates focus on developer experience and performance: the new Build Orchestrator API provides async project management, module resolution can now be overridden in API programs, and incremental caching for code generation reduces build time by up to 80%. Additionally, the compiler now schedules projects by dependency depth to minimize builder idle time, and we fixed handling of the never type in readonly tuple detection.