TypeScript roadmap: Microsoft’s plans for 2019

Improvements are under consideration for core type system, linting, and error messages

TypeScript roadmap: Microsoft’s plans for 2019
pxhere (CC0)

Microsoft’s priorities for TypeScript for the first six months of 2019 are to enhance the core type system, boost productivity, and improve linting.

Microsoft’s TypeScript roadmap is not a commitment to feature delivery, the company noted.

Core type system

For TypeScript and the core system, the goal is to statically model patterns in JavaScript in a reasonable way while enforcing correctness and snagging bugs. The features being added to the ECMAScript specification underlying JavaScript mean TypeScript has to evolve with it. Priorities for TypeScript and the core system include:

  • Enablement of popular JavaScript patterns in a type-safe manner.
  • Increased expressivity.
  • Proving of relationships between types.
  • Implementation of ECMAScript features.
  • Stricter settings.

TypeScript beyond TypeScript

With the user base now including the JavaScript ecosystem as a whole, TypeScript is no longer just for TypeScript. With this in mind, Microsoft’s priorities include:

  • A smoother transition to TypeScript.
  • Understanding more dynamic patterns.
  • Improving JavaScript editing.
  • Automation for adding JSDoc types.

Productivity tools integration

For productivity space, goals include:

  • “Proactive” quick fixes.
  • Declaration file fixes and refactorings.
  • Easing migration to TypeScript and typed JavaScript.
  • “Bread and butter” fixes and refactorings, referring to a class of code modifications and fixes applicable to most developers.

ESLint versus TSLint

Also under consideration are enhancements for linting, with plans calling for using the ESLint pluggable JavaScript linting utility over the TSLint static analysis tool for TypeScript code. Microsoft plans to contribute to ESLint’s TypeScript support to bring it to parity with TSLint. TypeScript’s repository will switch to ESLint.

Speed and scalability

For speed, stability, and scalability, priorities include:

  • Addressing performance issues, including tracking and fixing regressions, such as emit-time regressions and performance concerns in the Visual Studio IDE.
  • Automatic unloading of projects in the TSServer standalone server for TypeScript.
  • Continued improvements to composite projects, for building colocated projects for scenarios such as monorepos and serverless apps. Support is planned for automatically swapping projects in and out to save memory.

For the command-line experiences, surfacing language service operations on the command line is under consideration.  Users have asked for ways to trigger operations like “organize imports” and to automatically apply code transformations used by quick fixes and refactorings.

Error and type display UX

The error user experience in TypeScript provides a way for developers to comprehend what the type system is doing. But the UX has not kept up with advances to the system. Plans call for prioritizing misleading error messages that users file and rethinking “scarier” messages. Also, error messages could be more approachable in editors, with users seeing a full explanation of an error on demand.

Copyright © 2019 IDG Communications, Inc.