- Notifications
You must be signed in to change notification settings - Fork664
What will happen to the existing TypeScript/JavaScript codebase?#454
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
Will everyone have to upgrade to the native version of the compiler and language service? What if there's a huge problem with the new codebase, or tools and projects need to continue using the JavaScript-based codebase? We expect that many users will need to continue using the existing stable TypeScript codebase (versions 5.x and 6.x, a.k.a. Strada) for pragmatic reasons, even as adoption of the new native codebase (eventually version 7.x, a.k.a. Corsa) picks up. There are a few reasons for this. First, the new codebase is not yet at complete parity, and there may be cases where developer feedback tells us about some gap between the two implementations. Some of these omissions may be intentional, and others may not, and we will be listening to feedback to understand what gaps are blocking adoption of Corsa. Beyond that, many programs depend on TypeScript's APIs (e.g. the compiler and language service APIs, the TSServer protocol, or language service plugins). Even if there was perfect compatibility in the parser, checker, CLI, etc., any missing integration might pose challenges for existing TypeScript users to upgrade. For these reasons, we expect to maintain the existing TypeScript codebase for the foreseeable future. We will continue to release new versions of TypeScript 5.x and 6.x, and we will continue to support the existing APIs in the Strada codebase (though note that we will not portall APIs to Corsa as we are rethinking API compatibility). We will also continue to accept pull requests and issues against the Strada codebase, and we will strive to keep the two codebases in sync and compatible in type-checking and other behaviors. Eventually, the intent is to develop only the Corsa codebase, but this will be decided based on adoption and the state of the community. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 27
Replies: 6 comments 18 replies
-
Will you be porting over legacy and lesser used (I would assume) features of current tsc too? Thinking of the ability to output ES5+downlevelIteration+AMD, for instance. |
BetaWas this translation helpful?Give feedback.
All reactions
-
We are trying to find ways to make existing JS/JSDoc support simpler, so there may be a few divergences there, but we are specifically looking for feedback. For other stuff, you can keep track of relevant deprecations onmicrosoft/TypeScript#54500. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 2
-
welp (Sorry if this is offtopic, but is there any way at all for this particular deprecation tonot happen?) |
BetaWas this translation helpful?Give feedback.
All reactions
-
@egasimus It's been a long time since I dealt with commonJS imports, but thinking about the change, I wonder if it might not be bad to migrate even a very large project since the compiler will tell you if you missed anything. While there might be a lot of changes, some might be scriptable and other changes fairly brainless. I know it's a pain, but I've done some pretty massive refactors without problems when I've been able to lean on knowing the compiler won't let me forget something. |
BetaWas this translation helpful?Give feedback.
All reactions
😄 1😕 1
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
CommonJS is indeed out of scope for the use case I have in mind, and in general I really wouldn't like to water down these threads with such abstract discussion. Especially considering the subject of my question turned out to be only tangential to the planned Go rewrite. I'm only soliciting input from TypeScript core team members and only as to whether there exists any way at all to dissuade them from effecting this deprecation, thus permitting ourexisting post-compilation scripts1 to continue working into the TypeScript 6.0 era; or should we rather begin preparing to undergo a new round of what@PaluMacil perhaps dismissively, but as it happensentirely aptly described as "pain". Since the issue linked by@DanielRosenwasser is locked, is the proper course of action to open an issue on the TypeScript repo proper — or isthis particular thing something that's already been decided internally and I should look for more enjoyable uses of my time? Footnotes
|
BetaWas this translation helpful?Give feedback.
All reactions
-
As a CommonJS author using lots of JSDoc I'm interested in how I can leverage TypeScript using JSDoc and what is going on here. CC@DanielRosenwasser |
BetaWas this translation helpful?Give feedback.
All reactions
👍 1
-
Any changes to how external contribution should proceed in the meantime? |
BetaWas this translation helpful?Give feedback.
All reactions
-
No changes in guidance in external contributions yet (other than "please have patience as we're quite busy" 😅). Our general plan is to have us port the PRs that have gone in since we forked, then figure out how to get this repo merged back into the primary repo. Oncethat happens then we'll have some strategy around testing to make it ergonomic to make the same change to both codebases and validate that the "same" diff occurs (moduloknown problems). It'll be a bit tricky but we'll get it worked out eventually. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 4
-
What will happen to TypeScript applications that were transpiled to JavaScript and ran in the browser, and will older browsers support all of this? |
BetaWas this translation helpful?Give feedback.
All reactions
😕 2
-
Nothing; this affects the implementation of TypeScript itself, not applications written in TS |
BetaWas this translation helpful?Give feedback.
All reactions
👍 4
-
??? |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
Glad to see this@RyanCavanaugh I think I posted a question relating to this here#503 and I think you helped clarify thanks. |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
-
BetaWas this translation helpful?Give feedback.
All reactions
👍 1
-
TypeScript the language is not changing; the compiler that checks your code and provides editor features is. You will not need to learn Go unless you want to contribute to the project. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 3
-
Sorry if this was made clear - while I understand that the language itself is not changing, how will it evolve? Will syntax become less coupled with Javacsript or continue to maintain relative parity? |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
What will happen to Monaco Editor with TypeScript 7? In terms of TypeScript Intellisense. |
BetaWas this translation helpful?Give feedback.
All reactions
-
Monaco can support LSP based languages, so we should be covered there. |
BetaWas this translation helpful?Give feedback.
All reactions
-
Maybe there will be WASM version of TypeScript running in the browser? |
BetaWas this translation helpful?Give feedback.
All reactions
-
Yes.#458 (comment) |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
I understand that Strada (5.x, 6.x) will reach end-of-life when Corsa (7.0) is fully adopted. Given that TypeScript has been reimplemented in Go, would the team consider supporting JavaScript environments through Go-to-JavaScript compilation tools like GopherJS? |
BetaWas this translation helpful?Give feedback.
All reactions
-
Possibly, though GopherJS is unfortunately very behind in supporting newer versions of Go. |
BetaWas this translation helpful?Give feedback.