最近搭框架,有点时间,想把代码检查也加进去。看了tslint和eslint相关的东西,现在还没确认最后使用什么,先把查过的东西记录一下。
Use create-react-app Typescript with Custom CRA ESLint Rules
链接: michael-harley.medium.com/using-creat…
Create-React-App with TypeScript, ESLint, Prettier, and Github Actions
链接: brygrill.medium.com/create-reac…
TSLInt-Prettier-CreateReactApp-TypeScript-setup.md
链接: gist.github.com/rimatla/a5a…
TypeScript 应该使用 ESLint 还是 TSLint 做代码检查呢?
《代码检查 - TypeScript 入门教程》
链接: ts.xcatliu.com/engineering…
typescript-eslint-parser 和 tslint 有什么区别,应该如何选择?
链接: www.zhihu.com/question/27…
从该答主的回答里,可以看到结论是推荐使用typescript-eslint-parser,具体的原因需要引用一下这位答主的原话:
typescript-eslint-parser 和 tslint 的产生各有其历史原因,总结一下主要区别就是,他们是基于不同 AST 的 lint 工具, typescript-eslint-parser 兼容了 eslint 的生态,可以跟 eslint 的各种插件一起使用,而 tslint 不可以。
现在由于 eslint 的社区已经非常完善了,而 tslint 无法使用这些社区的成果,也无法将自己的成果回馈给社区,所以 tslint 的作者已经宣布会逐渐废弃 tslint 以支持 typescript-eslint-parser ( medium.com/palantir/ts… ),TypeScript 的开发团队也宣布会将自己开发的 lint 工具从 tslint 迁移到 typescript-eslint-parser( github.com/microsoft/T… )。
从零开始配置 TypeScript 项目
关于tslint和eslint的背景,引用其中的几段话
ESLint 背景:
- TypeScript 的代码检查工具主要有 TSLint 和 ESLint 两种。早期的 TypeScript 项目一般采用 TSLint 进行检查。TSLint 和 TypeScript 采用同样的 AST 格式进行编译,但主要问题是对于 JavaScript 生态的项目支持不够友好,因此 TypeScript 团队在 2019 年宣布全面转向 ESLint(具体可查看 TypeScript 官方仓库的 .eslintrc.json 配置),更多关于转向 ESLint 的原因可查看:
- TypeScript 和 ESLint 使用不同的 AST 进行解析,因此为了在 ESLint 中支持 TypeScript 代码检查需要制作额外的自定义解析器(Custom Parsers,ESLint 的自定义解析器功能需要基于 ESTree),目的是为了能够解析 TypeScript 语法并转成与 ESLint 兼容的 AST。
@typescript-eslint/parser在这样的背景下诞生,它会处理所有 ESLint 特定的配置并调用@typescript-eslint/typescript-estree生成ESTree-compatible AST(需要注意不仅仅兼容ESLint,也能兼容Prettier)。@typescript-eslint是一个采用 Lerna 进行设计的 Monorepo 结构仓库,除了上述提到的 npm 包之外,还包含以下两个重要的 npm 包:
@typescript-eslint/eslint-plugin:配合 @typescript-eslint/parser 一起使用的 ESLint 插件,可以设置 TypeScript 的校验规则。@typescript-eslint/eslint-plugin-tslint:TSLint 向 ESLint 进行迁移的插件。- 温馨提示:如果你正在使用 TSLint,并且你希望兼容 ESLint 或者向 ESLint 进行过渡(TSLint 和 ESLint 并存), 可查看 Migrating from TSLint to ESLint。除此之外,以上所介绍的这些包发布时版本一致(为了联合使用的兼容性),需要额外注意@typescript-eslint 对于 TypeScript 和 ESLint 的版本支持性,更多可查看 @typescript-eslint/parser 的仓库信息。
TypeScript ESLint
typescript-eslint的使用指南
Using ESLint and Prettier in a TypeScript Project
链接: robertcooper.me/post/using-…
Learn TypeScript Linting Part 1
链接: blog.matterhorn.dev/posts/learn…