Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
TypeScript Roadmap: July - December 2019 #33118
This roadmap is meant to give our team and users clarity over our priorities over the next 6 months. It's meant more as a set of guidelines than as a strict set of tasks we are bound to finish.
At a high-level, we're going to be focusing on the following 5 goals:
The how is broken down into the following sections:
If you've seen our last 6-month roadmap, you will notice that our goals and areas of investment haven't changed. The biggest change you might notice are specific work items and amount we'll be focusing on each area of investment. As an example, we're still committed to supporting editor scenarios, but right now we're more interested in ensuring that editor features are fast.
Language design and innovation
TypeScript and the core type system
While nothing has changed here, we have noticed any change we make may break existing code or hurt performance. We do not believe this should deter us from investment in these areas, but we will have to test more than before. More on this later in the document.
Whoever these users are, we believe TypeScript can serve them in some way.
The majority of our investment here will likely be for editor scenarios, migration to TypeScript, and targeting
We are involved in several different committees, including TC39 and the Node modules group. We try to provide representation as
We're prioritizing forward compatibility with proposals/features that we've adopted early on, and we are also helping champion features which are highly-demanded from the community. As an example, our team is now involved in championing optional chaining and nullish coalescing. To maintain focus, we will likely only be engaged with a few proposals at a time.
We hold a policy of not implementing features unless they reach stage 3 and we have high confidence in them.
Developer productivity tools and integration
More details here
While editor responsiveness would typically land under speed, scalability, and stability, it is worth noting here because it has consistently come up as a problem. We've fixed many responsiveness bugs, but we still have more feedback to investigate.
"Bread and butter" quick fixes and refactorings refer to a class of code modifications and fixes that are applicable to most users, and generally improve everyone's quality of life. These fixes are also useful for teaching users about language features and patterns. Expect more of these, and feel free to suggest some in separate issues!
Managing declaration files continues to be a problem, and we have more ideas for good workflows since we last considered this. We'll have to rethink our approaches here.
When possible, we may provide more in-editor suggestions with quick fixes, though these are nice-to-haves compared to the other features mentioned here.
Speed, scalability, and stability
More details here
Since the last roadmap, our benchmarking infrastructure is significantly better and uses more up-to-date versions of the 3rd party projects that we test against. We even have editor-style tests built into DefinitelyTyped to check whether any given test will significantly increase memory usage and keystroke delays. We're still continuing on automated testing infrastructure for TSServer to crawl external codebases to effectively fuzz-test them. ETW support is almost done, but is being wrapped up. We've also managed to address various regressions that have popped up.
In recent versions, we released the `--incremental` flag to enable faster compiles, with or without using project references. Still, when it comes to compiling and editing, our users have reported some scaling issues in performance. We're going to be reaching out to users to find the root cause of their issues, and finding patterns so that we can directly address the issues.
Education and UX
More details here.The handbook is close to done, and can be viewed here. We hope to be done with the core handbook in the coming months and to publish it to the new website around the end of the year.
Error and type display UX
More details here
We've made further improvements in UX and error messages, with help from the community, as well as [feedback from Microsoft's API teams](https://github.com//issues/30646) from user studies around Promise-based APIs using TypeScript. We'll continue to look for feedback from these sources.
We have been experimenting with editor UX changes that make it easy to explore types in quick info (editor tooltips) and error messages. We're holding these changes until we finish user studies on whether they actually help users fix issues more quickly.
Playground and website
We've already replaced the playground, and have been investigating as to whether we can make nightly versions available. We will also be working on a redesign, new pages around community meetups/conferences, and integrating the new handbook into the site.
We continue to elicit feedback from various partner teams, including library authors and organizations/individuals using TypeScript in interesting or broadly applicable ways. This gives us insight on various things we could improve. If you or your organization have any interesting feedback, we'd probably love to hear from you!
We want to encourage members of our team to be involved with the community, and write and talk about things that they find interesting. This keeps us close to our users and makes the project itself more approachable.
The idea here is really anything that improves
for development on the TypeScript project and any of our satellite projects.
In light of the focus on more expressiveness in the type system, and the recent changes to setters/getters in type declarations, might I propose that this issue is given another look?
I think improving this would allow for more accurate description of the actual types of existing JS libraries as they stand, not to mention the DOM's actual behavior.
@jack-williams The FAQ is an interesting one, I wonder if it can be expanded into a section (with sub-sections) in the new site because that wiki page is redonqulously big. Happy to chat about ideas on an issue in the website if you've got ideas (otherwise I'll put it on my back burner to think about)
The website issues is a good spot for this https://github.com/microsoft/TypeScript-website/issues