TypeScript
TypeScript copied to clipboard
TypeScript 4.9 Iteration Plan
This document outlines our focused tasks for TypeScript 4.9. It minimally indicates intent to investigate tasks or contribute to an implementation. Nothing is set in stone, but we will strive to complete these tasks in a reasonable timeframe.
| Date | Event |
|---|---|
| August 23rd | TypeScript 4.8 Release |
| September 16th | Create 4.9 Beta (4.9.1) Build for Testing |
| September 20th | TypeScript 4.9 Beta Release |
| October 28th | Create 4.9 RC (4.9.2) Build for Testing |
| November 1st | TypeScript 4.9 RC Release |
| November 11th | Create 4.9 Final (4.9.3) Build for Testing |
| November 15th | TypeScript 4.9 Final Release 🚀 |
gantt
dateFormat YYYY-MM-DD
TypeScript 4.8 Stabilization Period : 2022-08-05, 2022-08-25
TypeScript 4.9 Beta Development : 2022-08-05, 2022-09-16
TypeScript 4.9 RC Development : 2022-09-16, 2022-10-28
TypeScript 4.9 Stabilization Period : 2022-10-28, 2022-11-15
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5
Language and Compiler Features
- ECMAScript Decorators
- Contextually Typed And Compatible Operator
lib.d.tsUpdates- Support
.tsas a Module Specifier for Bundler/Loader Scenarios - Investigate Fine-Granularity Module Resolution Options
- Investigate Per-File Settings
- Make @types/web Versionable
- Investigate
--isolatedDeclarationEmit Mode
Editor Productivity
- Switch to FsEvents for File-Watching by Default
- Virtual File System Support in TSServer
- Investigate Cancellation in Browser Contexts
- Prototype Automatic Type Acquisition in Web Contexts
- Investigate TS Server Plugins on the Web
- High Confidence JavaScript Diagnostics in Classes
- Provide Walkthroughs in Visual Studio Code Welcome View
- Easy Run/Debug for Loose TypeScript Files
Performance
- Investigate Module Resolution Caching in
.tsbuildinfoFiles - Investigate Tooling for JIT Deoptimizations
- Investigate Outstanding Performance Issues
- Enrich TS Server Tracepoints
Infrastructure
- Enable
strictFunctionTypeson TypeScript Codebase - Determining Module Migration and Shipping Strategy
- Rewrite TSServer Crawler
- TSServer Performance Testing Infrastructure
Website
Previous iteration plan is over at https://github.com/microsoft/TypeScript/issues/49074
Looks like we may be adjusting the beta deadline to early next week to get in a few PRs that needed to wait as a result of 4.8 servicing tasks.
@typescript-bot create release-4.9
Heya @DanielRosenwasser, I've started to create the release-4.9 branch for you. Here's the link to my best guess at the log.
A few updates:
- While decorators have reached stage 3, we saw some behavior in the spec that needed to be discussed with the champions. Between addressing that and reviewing the changes, we expect decorators will be implemented in the next version.
- Rather than shipping pieces of module resolution, we'd like to have a cohesive story on each of the above. That will likely be going to the next version as well.
- Caching in
.tsbuildinfofiles is still in flux. We'll likely have to decide on that only if we feel like we can get sufficient coverage.
@typescript-bot create release-4.9
Heya @DanielRosenwasser, I've started to create the release-4.9 branch for you. Here's the link to my best guess at the log.
@typescript-bot sync release-4.9
Heya @DanielRosenwasser, I've started to sync release-4.9 with main for you. Here's the link to my best guess at the log.
Due to https://github.com/microsoft/TypeScript/issues/50927, the correct beta on npm is 4.9.1-beta. The RC will be 4.9.2-rc. The stable will be 4.9.3.
One day we will be able to avoid incrementing the patch and just publish pre-releases.
I always thought it was weird that TS prereleases consume entire version numbers. What is the technical reason for that?
Something to do with places like the VS Marketplace which don't support prerelease tags, though that might have changed entirely. https://github.com/microsoft/TypeScript/wiki/TypeScript's-Release-Process#why-do-you-need-to-set-the-patch-version-on-pre-releases
Maybe things have changed enough such that we can do something different now.
Will per-file settings available in ts 4.9? Or maybe move it to 5.0?
👋🏼 In Ember.js' testing against TS, we noted failures against 4.9 starting with the 4.9.0-dev.20221014 release. I believe these are legitimate issues (the fix here is demonstrably all sorts of unsafe!), but the underlying change wasn't called out in the 4.9 blog post, so I wanted to flag it here as a thing to possibly mention – I assume this was a case of intersection handling and unknown getting better.
@typescript-bot sync release-4.9
Heya @DanielRosenwasser, I've started to sync release-4.9 with main for you. Here's the link to my best guess at the log.
I feel like we need to add -X theirs to that workflow's merge so that it always takes what's in main (kinda like reset --hard main but without breaking history). Unfortunate that we hit conflicts thanks to LKG changing in both.
The 5.0 iteration plan is over at microsoft/TypeScript#51362.
@typescript-bot bump release-4.9
Heya @DanielRosenwasser, I've started to update the version number on release-4.9 to 4.9.4 for you. Here's the link to my best guess at the log.