-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeScript 4.0 Iteration Plan #38510
Comments
Would you consider to include #29818 in 4.0 maybe behind experimental flag? |
That gets complicated by the change in factory function definition in itself. It could be interesting to introduce a separate factory virtual type definition, though; say, |
Would you consider to also include #24738 in 4.0 as well? |
I'm a bit sad to see no mention of #33038 [👍 140 and an actual PR by your own @weswigham] or #202 [👍 390] while tickets like #15230 [👍 27] are considered "high-demand". I realise you can't really compare or prioritise on the basis of "likes" but it would be great if there was some roadmap update on these, especially as 4.0 seems like nice opportunity to introduce a feature like this. 🙏 |
~3.5-year-old issue awaiting feedback with almost 200 comments #13778 with inaccurate typings provided for stuff like array destructuring. Pwetty pwease can we implement fix 🙏 |
I appreciate people occasionally boosting issues that they believe need attention on the roadmaps and iteration plans, but I think I need to be clear here -that "investigate high demand bug fixes" section was determined by looking through issues that were clearly causing a lot of papercuts but which seemed reasonable in scope. We're definitely still mindful of the issues mentioned, but some of them are not as scoped nor do they have a clear ideal outcome. Examples:
|
@DanielRosenwasser what is the future language direction in your vision? |
I guess I'll give some context on where my mind is with nominality. There are a lot of different ideas people have in mind when they ask about nominal types, including
There are shades between some of these (e.g. placeholder type declarations - kind of variant of opaque types that fall back to an implementation type), and then there are different directions that blend each of these together. @RyanCavanaugh had a great analogy about this where 3 kids are asking their parents for a pet. One wants a dog, one wants a cat, one wants a fish. They ask their parents "when are we getting a pet!?" Clearly they all agree they want a pet, but each wants a different pet! Do I like branded types? I do! Branded types achieves something like distinct aliases, and fits the bill for what most users are looking for. But I don't think that's the right way to think about it. There's more design space to be fleshed out with plenty of known tradeoffs, and nothing giving me a sense that we need to rush a solution ASAP. |
I’d like if we could get microsoft/TypeScript-DOM-lib-generator#858 into TypeScript 4.0. |
@DanielRosenwasser first of all thank you for the writeup 🙇 Can you elaborate a bit on what use cases nominal types actually address for TypeScript? First: feel free to send me to a giant wall of text or a repo and I'll read it :] I don't mean opaque types like placeholder types - I mean what you call "Traditional" nominal types. I always felt nominal types were antithetical to JavaScript and that's why previous attempts didn't really work so well. There are ways to make it work pretty nicely (protocols in swift and typeclasses in haskell come to mind as "Nominal but extendable from the outside") and I'm sure you're familiar with most of the "well established" ways (I assume "units of measure" is an F# wink). I have found a lot of people asking for nominal (as in "traditional") types but not a lot of writeups about why. |
Over time, we've seen fewer and fewer people request "traditional" nominal types, maybe because collectively the community has built up a mental mode for structural types. There are some places where types truly do act nominally (when Some of the "traditional" use-cases are the same as those of a zero-overhead nominal wrapper type (e.g. |
I kind of feel that Typescript is already expressive enough. What I would personally would like to see is better tooling integration.
Because of above it is common to see clunky and hacky solutions. Most react projects have babel included for react-hot-loader (compiler plugins), some CSS systems also require babel for compile time transforms. Using pnp, esm or even CSS modules require more tooling and workarounds for tsc limitations. It is also frustrating that for some of these issues community came with concrete solutions in form of PRs or proposals but these were rejected or stalled for years. As a practitioner, it is getting harder to use TS in the context of wider ecosystem. Anyway I am just random person from internet. |
@DanielRosenwasser maybe #29374 could get reviewed in time for 4.0? I think it covers many (most?) of the |
Please reconsider including support for referencing ES modules with a file path including the file extension. It will give a big boost to level the playing field of multi-environment code. |
Thank you for your focus on the tooling around typescript! I was hoping you could consider providing closer integration with https://github.com/microsoft/tsdoc. A lot of other modern languages like go and rust provide documentation tooling right out of the box and encourage developers to write standard comments, but typescript is lacking in this regard. |
It would be super great if #31445 can be picked up, this has been a deal breaker for us and I believe a lot of people (based on how many references that issue has)! |
I found people are requesting everything to be included in the 4.0 release 😆 |
Feels like TS is loosing momentum? Nullish coalescing and short-circuiting assignments for the next, major, 4.0.0 release? No big goals and ambition ideas anymore? For the next major, I'd expect:
|
@canonic-epicure Agree, currently it feels more like a 3.10 for the next version |
TypeScript doesn't follow the semver. There isn't v0.10, v1.10, v2.10, or v3.10. So this is actually a normal milestone. It's a bit strange people are expecting so many changes in 4.0 but not saying anything in 3.9 or prior iteration plan. 🙈 |
IMO it does not satisfy the Typescript's goal.
Have a try: https://github.com/cevek/ttypescript
Do you looking for https://www.assemblyscript.org/ |
Ok, so 4.0.0 is just a next minor release, good to know. Regarding the "macroses do not satisfy the TS goal" and "use ttypescript for transformers" ( |
I also want marco in TypeScript but there're really many reasons against this.
|
@Jack-Works I don't understand your points. Perhaps you mean that macroses will extend parser and create new synatx? For me, macros is just AST -> AST function, that runs prior typechecker somehow, therefor it can create new AST nodes that will be typechecked regularly. It does not create new syntax however - the input is regular AST, the output too. It does create new nodes in AST. The discussion will be off-topic for this thread, perhaps to be continued on #compiler channel in discord? |
Can #38597 be included in TypeScript 4.0 ? |
@weswighammmmmmmmmmmmmmmmmmm, the bot hates me ): ): ): ): Absolutely no rush, but I did it manually and filed this: #39869 |
Just as an update, we had to move over the RC by 2 days for the website launch and for other changes we felt we needed to land in the RC. We don't anticipate anything pushing us back much further, but to be safe, we'll be giving ourselves another 2 days to get feedback on the RC, and aiming for the 20th instead. |
@typescript-bot bump release-4.0 |
Heya @DanielRosenwasser, I've started to update the version number on |
it's Aug 20 :) |
Heh, it's still August 19th here, and even 20 minutes from now I think you'll have to wait a bit more. We have nightly releases on npm if you can't take another minute! 😄 |
Waiting for the release, already out in npm :) |
@typescript-bot bump release-4.0 |
Heya @DanielRosenwasser, I've started to update the version number on |
@typescript-bot bump release-4.1 |
Heya @DanielRosenwasser, I've started to update the version number on |
Oh no |
@typescript-bot bump release-4.0 |
Heya @DanielRosenwasser, I've started to update the version number on |
@typescript-bot bump release-4.0 |
Heya @DanielRosenwasser, I've started to update the version number on |
@typescript-bot bump release-4.0 |
Heya @DanielRosenwasser, I've started to update the version number on |
This document outlines our focused tasks for TypeScript 4.0, as well as some of the discussion that explains how/why we prioritized certain work items. Nothing is set in stone, but we will strive to complete them in a reasonable timeframe.
Language Features
awaited
Typeunknown
oncatch
Clause BindingsEditor Productivity
/** @deprecated */
tags/** @see */
tagsPerformance
Infrastructure
Investigate High-Demand Bug Fixes
--watch
--declaration
Emit Errorchange
events on<input type="file">
have nofiles
fieldisolatedModules
The text was updated successfully, but these errors were encountered: