为什么要迁移
- 先在TSLint官网首页可以看到,从2019年开始已不再维护,并推荐使用eslint
- 为什么放弃TSLint:
整合JS社区资源,tslint没有必要另起炉灶
- eslint官网
eslint如何检测TS的
我们知道,ESLint 默认使用Espree作为其解析器。和Typescript解析的AST存在兼容问题。所以提供了新的parser : @typescript-eslint/parser来兼容ts的解析和检测
所以这个时候就面临一个问题:现有的tslint如何转换成eslint?
过程
从上面的TSLint官网进入后,推荐了新的配置网址typescript-eslint
里面推荐了一个tslint-to-eslint-config将现有的tslint.json
转换成对应的eslint。那么我们先尝试一下吧
tslint-to-eslint-config
根据npm地址提示,执行
npx tslint-to-eslint-config --tslint ./tslint.json
可以发现输出的.eslintrc.js
和tslint-to-eslint-config.log
两个文件。同时终端信息
大致可以看出,127条转换成功,40条tslint配置找不到对应的eslint配置。详情可以在log文件中查看
特殊处理
针对上面没有办法转换的,官网也提供了说明文档tslint对应规则eslint
通过查看以上的文档,对特定的tslint规则进行转换
其他
如果是新的项目呢?配置规则和eslint-rules在这里查看
多维度
配置eslint不应该从某一个单个的角度去想。可以从多个角度,设置对应的rules
项目代码
TODO
eslint中extends和plugin的区别
plugin
:使用加载的插件,赋予了rules中新的检测功能。就像是一个机器人新增了一个武器、可以使用这个武器实现某种能力extends
:继承,就是已经实现的一套规则,可以直接拿过来用。就像是现有的一个机器人,直接拿过来用
相关地址
- tslint-to-eslint-config:通过指令可以自动把原来的tslint规则转换成eslint
- tslint对应规则eslint:有的tslint规则从@typescript/eslint找不到。这里可以找到对应的plugin
- eslint-plugin-jsdoc:关于注释的plugin和文档
- typescript-eslint:@typescript-eslint
- eslint-plugin-import:关于module文件的输入输出规则
- eslint-plugin-react:关于React
- eslint-plugin-react-hooks:关于React Hooks
- hooks-rules:React官方文档关于Hooks的规则
- eslint-plugin-unicorn:代码风格相关plugin
- eslint.bootcss:eslint规则文档
- eslint-rules:eslint规则文档
- selectors:eslint高级配置,匹配规则说明
- astexplorer:ast解析工具网站