4 min read

Today, Daniel Rosenwasser, the Program Manager of TypeScript, released a roadmap to be followed for TypeScript starting from January 2019 to June 2019. This roadmap outlines the priorities that the team will be focussing on, over the next 6 months, which will serve as a set of guidelines to accomplish the listed goals by June 2019. These goals (as listed on GitHub) include:

  • Types on every desk, for every JS developer
  • Using strong tooling to increase productivity
  • Improved Approachability and UX
  • More Community engagement
  • Better Infrastructure and engineering systems

In order to achieve these goals, the Typescript team will focus on tweaking the following domains:

#1 Language design and innovation

Under this domain, the team will focus on the core ‘type’ system. They plan to enable popular JS patterns in a type-safe way, while also proving relationships between types. The latter simply means generalizing patterns between type operators and encoding them in type relationships. They also plan to implement ECMAScript features with stricter settings.

In terms of Committee representation, their goals include prioritizing forward compatibility with proposals/features adopted in the earlier stages of developing TS. They also want to be involved in other features like Class fields (public and private), decorators, ES/CJS module interop, and much more to ensure that ECMAScript grows to ‘make a developers’ life easier’.

#2 Developer productivity tools and integration

The team plans to introduce ‘quick fixes’ that will be proactive in nature. This includes a class of code modifications and fixes that are applicable, which will be useful for teaching users about language features and patterns, making it more approachable to work with TypeScript/JavaScript. Proactive fixes also imply that TypeScript can analyze code and can surface suggestions and code changes for improvements rather than just fix an error. This is in contrary to most of the current quick fixes that are reactive in nature and are created and triggered after a user has seen a definite error.

They also plan on focussing on more targeted workflows like ‘migration’. They will come up with ways to ease migration to TypeScript and typed JavaScript to improve the process of adding types.

In the field of ‘Linting’, the team noticed architectural issues with the way TSLint rules operate that impacted performance. They will be working towards fixing these issues. Since ESLint already has the more-performant architecture, the TS team will be focusing on leveraging ESLint rather than duplicating work. For scenarios that ESLint currently doesn’t cover, they will be sending contributions to bring ESLint’s TypeScript support to parity with TSLint.

To build co-located TypeScript projects, the team will be making improvements such as functionality for automatically swapping projects in and out to save memory. They will also investigate the emit-time regressions seen in the last few versions of TS. Finally, they plan to investigate surfacing language service operations on the command line.

#3 Education and UX

The team says that the documentation provided for TypeScript needs to be improved for a more seamless learning experience. They will be working on a new version of the handbook with  three different parts:

  1. Tailored introductions for the core handbook
  2. The core handbook for everyone
  3. Reference pages (eg. appendices)

They believe the segmentation of this documentation will help developers from all backgrounds–right from complete novices to experienced developers–to learn TypeScript without any hassle. They will also be improving their error UX to make it more ‘approachable’ for inexperienced users. Their website will also be undergoing an upgrade along with the examples mentioned on the same.

#4 Community investment

TypeScript’s DefinitelyTyped’ is the 10th most popular open source project on GitHub. The team will be focussing on weekly PR rotations–where members of the TS team review external PRs to DefinitelyTyped–and DefinitelyTyped’s surrounding infrastructure such as the types publisher, dtslint, and dt-mergebot. They also plan to ease the process of external contributions to the documentation and investigate improving rich editing experiences. This year, users can also expect more public talks, meetups and blog posts on TypeScript.

#5 Team Infrastructure

The team will be focussing on faster builds by converting them to avoid bootstrapping themselves outside of CI, adding/migrating lint rules, and much more. This will, in turn, improve TS stability, productivity, and ease of contribution. Besides this, they also plan on providing internal guidance on TypeScript-first API designs, assisting internal partner teams with best practices for projects and addressing major Microsoft-internal build regressions.

You can head over to TypeScript’s GitHub page for more insights on this announcement.

Read Next

npm JavaScript predictions for 2019: React, GraphQL, and TypeScript are three technologies to learn

TypeScript 3.2 released with configuration inheritance and more

Vue.js 3.0 is ditching JavaScript for TypeScript. What else is new?