由于性能问题,TypeScript 官方决定全面采用 ESLint,甚至把仓库(Repository)作为测试平台,而 ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。

JavaScript 代码检验工具 ESLint 在 TypeScript 团队发布全面采用 ESLint 之后,发布 typescript-eslint 项目,以集中解决 TypeScript 和 ESLint 兼容性问题。而 ESLint 团队将不再维护 typescript-eslint-parser,也不会在 Npm 上发布,TypeScript 解析器转移至Github 的 typescript-eslint/parser。

在 TypeScript 的2019 上半年发展规划中,TypeScript官方说明了 Linting 工具的状况。由于在数个月前他们透过 VS Code 的问卷调查发现,不少用户认为 TypeScript 的 Linting 支援不足,因此负责 JavaScript 编辑体验的团队开始着手增加对 TSLint 和 ESLint 的支援。

但是编辑器团队提到,TSLint 的规则运作方式存在架构性的性能问题, 如果要维持效能将需要不同的 API,而这将破坏既有规则,相反的 ESLint 则具有更高效能的架构,而且不少热门项目的社群,诸如 React Hooks 和 Vue,都是使用 ESLint 建构 Lint 规则。

因此 TypeScript 的编辑器团队决定专注支援 ESLint,增加语义 Linting 和程序范围 Linting 等目前尚未包含的使用情境,同时,他们也承诺,会提供贡献以强化 ESLint 对 TypeScript 的支援,同时也在 TypeScript 储存库中使用 ESLint,使其成为工具实践的测试平台,并向上发送所有新规则。

部分 ESLint 团队中的成员,在过去一直致力于提高和 TypeScript 的兼容性,主要进行维护 TypeScript 解析器的工作,虽然这个解析器过去并非由 ESLint 团队维护,但最近落到了团队成员手中,而在 TypeScript 决定转而使用 ESLint 之后,官方认为,Typescript 解析器势必成为发展核心。

因此 ESLint 官方宣布发布 typescript-eslint 项目,这项工作交由 ESLint 团队的 James Henry 进行维护,Henry 本身便负责长期推动 ESLint 与 TypeScript 兼容性,原本的 TypeScript 解析器也将搬迁至仓库。官方提到,ESLint 团队并不会正式参与新项目,但会支援 James Henry 并维持畅通的沟通渠道,确保为 TypeScript 的开发人员提供良好的使用体验。

接下来 ESLint 团队将不再继续维护 typescript-eslint-parser,他们会封存仓库,也不会在 Npm 发布 typescript-eslint-parser,原本使用 typescript-eslint-parser 的开发者应使用 typescript-eslint/ parser 来替代。