如何让 ESLint 同时检测 js 和 ts

摘要:
但是ESLint默认使用Espree作为其解析器,在某些情况下不支持TypeScript语法。另外,TypeScript是JavaScript超集,有更多的语法,ESLint本身提供的规则无法满足。ESLint有一项overrides的配置,可以为某个文件或者某组文件进行覆盖配置。因此,我们可以设置ts文件使用@typescript-eslint/parser作为解析器,使用@typescript-eslint插件以及相关规则而不影响js文件。

一、让 ESLint 能够检测 ts 代码

ESLint 可以作用于 TypeScript。但是 ESLint 默认使用 Espree 作为其解析器,在某些情况下 不支持 TypeScript 语法。另外,TypeScript 是 JavaScript 超集,有更多的语法,ESLint 本身提供的规则无法满足。为了解决这些问题,我们需要用到 typescript-eslint。首先使用 npm 安装 @typescript-eslint/parser 和 @typescript-eslint/eslint-plugin(注意这两个插件的版本要保持一致):

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

在 ESLint 配置文件中,将 parser 设置为 @typescript-eslint/parser,把 @typescript-eslint 添加到 plugins 中,然后在 rules 中配置你要使用的规则:

{
  parser: '@typescript-eslint/parser',
  plugins: ['@typescript-eslint'],
  rules: {
      '@typescript-eslint/rule-name': 'error',
  },
}

如果你想启用所有推荐的规则,把 plugin:@typescript-eslint/recommended 添加到 extends 中:

{
  extends: ['plugin:@typescript-eslint/recommended'],
}

二、为不同文件指定不同配置

使用了 typescript-eslint 之后,我们已经可以正常检测 ts 代码了。但是同时项目中的 js 文件也使用了同样的规则,怎么可以让 ts 规则只作用于 ts 文件呢?ESLint 有一项 overrides 的配置,可以为某个文件或者某组文件进行覆盖配置。因此,我们可以设置 ts 文件使用 @typescript-eslint/parser 作为解析器,使用 @typescript-eslint 插件以及相关规则而不影响 js 文件。

{
  overrides: [
    {
      files: ['*.ts'],
      parser: '@typescript-eslint/parser',
      plugins: ['@typescript-eslint'],
      extends: ['plugin:@typescript-eslint/recommended'],
    },
  ],
}

文中使用的工具或者包的版本:
typescript 4.0.5、eslint 7.17.0、@typescript-eslint/parser 4.11.1、@typescript-eslint/eslint-plugin 4.11.1

免责声明:文章转载自《如何让 ESLint 同时检测 js 和 ts》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】力控的60个经典问题实用小技巧:在键盘没有小键盘时怎么打开任务管理器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS 正则处理 EAN_13%2C,CODE_128%2C,%2c 条形码 一维码格式

代码: var str = var str = EAN_13%2C69032 var sub = str.search(/%2C/) var s = str.substr(sub+3,str.length) console.log(s) //69032...

《中小学生Python编程入门指南》前言

只是在一次偶然的接触中了解到,其实有很多家长想让小孩学习编程,觉得是未来的一个方向。我不懂未来的方向是怎么分析出来的,但的确身边有很多的朋友都有让自己的小孩学习编程的想法。虽然自己才疏学浅,正好也是万千程序猿中的一个,趁着NCP疫情,在家没事做,就萌生了写本编程指南的想法,可以供大家参考,用作python语言的学习也好。也是我自己对python语言的再学习...

Javascript加载执行问题探索

楼主做前端开发一年多了,对前端的见解还是多多少少有一点的,今天特拿出来跟大家分享分享。 做前端开发少不了各种利器。比如我习惯用的还是Google浏览器和重型武器Fiddller。 一: 原始情况 首先大家看看如下的代码: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Defa...

iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择

一、Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了一套标准化实现和优化方案。但是他们存在一些硬伤,比如App的发版周期偏长、有时无法跟上产品的更新节奏;灵活性差,如果有较大的方案变更,需要发版才能解决;如果存...

python与redis交互

前言 首先我使用电脑为:Macbook air,电脑操作系统版本为10.13.6,处理器1.8GHz Intel Core i5, 安装python 版本号:python3.6.5 ,ide: pycharm 前置,已经安装homebrew,安装homebrew流程参考 https://blog.csdn.net/ziyuzhiye/article/det...

[转]windows 10 搭建angular开发环境

本文转自:https://www.cnblogs.com/lilunpai/articles/7992538.html 一、环境介绍 1、开发环境:Windows10 2、开发ide工具:VS codehttps://code.visualstudio.com/ 二、准备环境 1、下载并安装nodejs(建议下载LTS版本),安装过程中会默认添加path,...