在TypeScript中使用ESLint的指南(附实例)

1,344 阅读2分钟

这篇文章将介绍如何在TypeScript项目中使用ESLint以及它的好处。

了解对ESLint的需求

Linting是寻找有问题的模式或不遵守特定风格准则的代码的过程。提示工具可以在代码编辑器和CI管道中使用,以强制源代码库中的代码具有高质量、可读性。

ESLint是一个流行的JavaScript提示工具,能够对TypeScript进行提示。

TypeScript编译器包括一些代码质量的选项,如noUnusedLocalsnoUnusedParameters ,那么为什么我们需要一个单独的工具,如ESLint?嗯,虽然TypeScript编译器能够进行一些代码质量检查,但ESLint能够进行更多的检查

TSLint呢?- 这不是一个专门针对TypeScript的linter吗?嗯,是的,TSLint是TypeScript专用的linter,但它现在已经废弃了。

将ESLint添加到TypeScript项目中

要将ESLint添加到TypeScript项目中,我们需要安装eslint npm包:

npm install --save-dev eslint

我们需要几个额外的包来让ESLint与TypeScript一起工作:

  • @typescript-eslint/parser:这将解析TypeScript的代码,以获得提示。
  • @typescript-eslint/eslint-plugin:这包含了TypeScript代码的一些标准提示规则。

我们可以按如下方式安装这些npm包:

npm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin

配置ESLint

ESLint可以配置在项目根部的一个文件中。该文件可以是JavaScript、JSON或YAML格式,可以有几个不同的名字,如.eslintrc.json

下面是一个TypeScript项目的.eslintrc.json 文件的配置例子:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "extends": [
    "plugin:@typescript-eslint/recommended"
  ]
}

我们已经告诉ESLint使用TypeScript解析器来读取代码,并从我们刚刚安装的软件包中获得一组推荐规则。

运行ESLint

我们可以创建一个npm脚本,在package.json 中运行ESLint:

"scripts": {
  ...
  "eslint": "eslint src/**"
},

我们已经告诉ESLint要检查我们项目中src 文件夹中的所有文件。

然后我们运行我们的eslint npm脚本,如下所示:

npm run eslint

然后,ESLint将报告任何问题:

ESLint warning 下面是已经确定的有问题的代码行:

const form = document.querySelector("form")!;

ESLint警告说,在这一行的末尾使用了非空断言操作符(!)。推荐的规则建议不要使用非空断言操作符。

如果我们确定表达式不可能是nullundefined ,那么我们可以用注释来抑制这一行的规则:

const form = document.querySelector("form")!; // eslint-disable-line @typescript-eslint/no-non-null-assertion

一个更安全的方法是删除非空断言运算符,在我们引用form 后使用可选的链式运算符(?):

const form = document.querySelector("form");
form?.addEventListener("submit", submitHandler);

如果我们重新运行ESLint,它将不再报告这个警告。

很好!

总结

ESLint能够对TypeScript进行全面的代码质量检查,是TypeScript代码的推荐linter。ESLint是高度可配置的,可以调整以满足特定项目的要求。