创建项目
$ npx create-react-app app-react-ts --typescript
安装 ESLint 解析 TypeScript 的依赖
$ npm i eslint -D # eslint包
$ npm i @typescript-eslint/parser -D # 将 TypeScript 转换为 ESTree,使 eslint 可以识别 ts
$ npm i @typescript-eslint/eslint-plugin -D # 定义好的检测Typescript代码的规范
安装Prettier依赖
$ npm i prettier -D # prettier包
$ npm i eslint-config-prettier -D # 禁用任何可能干扰现有 prettier 规则的 linting 规则, 一定要把它放在 extends 中最后的位置, 避免再次被打开
$ npm i eslint-plugin-prettier -D # 将 Prettier 问题作为ESLint规则提示出来
配置ESLint
// .eslintrc.js
module.exports = {
// 解析器
parser: "@typescript-eslint/parser",// 使eslint识别ts
// 现有规则的一系列预设
extends: [
"plugin:@typescript-eslint/recommended",// 启用@typescript-eslint/eslint-plugin建议规则
"react-app",// CRA推荐规则
"plugin:prettier/recommended",// 简化配置: eslint-config-prettier + eslint-plugin-prettier
],
// 规则
rules: {}
};
安装VSCode插件
- ESLint插件
- 注意: 不需要安装Prettier插件, 安装了也无妨
配置settings
// workspace settings.json
{
// 老版只支持js文件校验, 所以需要配置"eslint.validate"
// 新版不需要配置"eslint.validate", 增加ts, vue等支持
// "eslint.validate": [
// "javascript",
// "javascriptreact",
// "typescript",
// "typescriptreact"
// ],
"editor.formatOnSave": false,// 保存时, 禁止触发其他扩展格式化代码, 如Prettier
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true// 保存时, 运行ESLint检测并格式化代码
}
}