Typescript ESLint要求分号,并希望同时将其删除

Typescript ESLint要求分号,并希望同时将其删除,typescript,eslint,Typescript,Eslint,我正在配置ESLint(因为TSLint很快就会被弃用)来处理我的.ts文件。我有一个非常小的文件: export default interface Departure { line: string; direction: string; time: Date; }; 上一次,在分号为的地方,我的VSCode中的ESLint发出两个错误信号:一个是关于缺少分号ESLint(semi),另一个是关于不必要的分号ESLint(没有额外的semi) 下面是我的.eslintrc.js

我正在配置ESLint(因为TSLint很快就会被弃用)来处理我的.ts文件。我有一个非常小的文件:

export default interface Departure {
  line: string;
  direction: string;
  time: Date;
};
上一次,在分号为的地方,我的VSCode中的ESLint发出两个错误信号:一个是关于缺少分号
ESLint(semi)
,另一个是关于不必要的分号
ESLint(没有额外的semi)

下面是我的
.eslintrc.js

module.exports = {
    "env": {
        "browser": true,
        "commonjs": true,
        "es6": true,
        "node": true
    },
    "extends": [
        "plugin:@typescript-eslint/recommended",
        "airbnb"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2018
    },
    "plugins": [
        "react",
        "@typescript-eslint"
    ],
    "settings": {
        "import/resolver": {
            "node": {
                "extensions": [".js", ".jsx", ".ts", ".tsx"]
            }
        }
    },
    "rules": {
    }
};

我怎样才能摆脱这种奇怪的局面?所有错误都不应该出现。

这里的问题是同时应用了两条规则:
1. <代码>导出默认值要求有分号
2. <代码>接口需要去掉分号

这里的修复方法是将接口声明与export语句分开,如下所示:

interface Departure {
  line: string;
  direction: string;
  time: Date;
}

export default Departure;

我自己没有想到答案。来源是这个

我使用以下规则解决了这个问题:

"rules": {
  "semi": "off",
  "@typescript-eslint/semi": ["error"],
}

除了Ricardo Emerson的设置外,以下
.eslintrc
设置将关闭分号错误:

{
  ...
  "extends": [
    ...
    "eslint:recommended"
  ],
  "rules": {
    ...
    "semi": ["error", "never"],
    "@typescript-eslint/semi": "off",
    "no-unexpected-multiline": "error"
  }
}


根据文档,在关闭分号时,还建议打开“无意外多行错误”按钮。

这会关闭所有缺少分号的错误,这是不好的。