The future of TypeScript on ESLintby Nicholas C. Zakas - 18 January 2019
We are excited that the TypeScript team has decided to officially work on improving the TypeScript ESLint experience. The driving force behind TypeScript compatibility for ESLint, James Henry, will work with the TypeScript team on this new project. We share what this means for the ESLint team and for TypeScript users.
A couple of weeks ago, the TypeScript team shared their roadmap in which they described formally adopting ESLint in their repo and working to improve TypeScript compatibility for ESLint:
- Semantic rules in ESLint
- Parity with TSLint
- Speed & scalability
- Editor integration for ESLint
Meanwhile, ESLint already has the more-performant architecture we're looking for from a linter. Additionally, different communities of users often have lint rules (e.g. rules for React Hooks or Vue) that are built for ESLint, but not TSLint.
Given this, our editor team will be focusing on leveraging ESLint rather than duplicating work. For scenarios that ESLint currently doesn't cover (e.g. semantic linting or program-wide linting), we'll be working on sending contributions to bring ESLint's TypeScript support to parity with TSLint. As an initial testbed of how this works in practice, we'll be switching the TypeScript repository over to using ESLint, and sending any new rules upstream.
typescript-eslint-parser (and partly on
eslint-plugin-typescript, which was not maintained by the ESLint team but had been maintained by Nicholas and James until recently). The Typescript parser would undoubtedly become the centerpiece of the TypeScript-in-ESLint story going forward; as such, we wanted to make sure that it would be properly maintained.
James Henry, who has long been the driving force behind TypeScript compatibility for ESLint, has started the
typescript-eslint project as a centralized repository for all things related to TypeScript ESLint compatibility. This will be the new home of the TypeScript parser,
eslint-plugin-typescript, and any other utilities that will make the TypeScript ESLint experience as seamless as possible.
While the ESLint team won't be formally involved in the new project, we are fully supportive of James' efforts and will be keeping lines of communication open to ensure the best ESLint experience for TypeScript developers.
What this means going forward
- The ESLint team will no longer be maintaining
- The repository will be archived as of today
- There will be no further releases of
- Anyone using
- Those interested in how TypeScript support is coming along should follow the
Once again, we are very excited to welcome the TypeScript community into the ESLint community and look forward to seeing how James and the
typescript-eslint team make ESLint the best choice for linting TypeScript code.