簡體   English   中英

Eslint Typescript “無隱式任何”規則

[英]Eslint Typescript "No Implicit Any" rule

我正在使用 eslint 設置一個新的 typescript 項目。 我正在嘗試正確設置 eslint 規則,以便tsc命令運行時不會出錯。 我在 tsconfig.json 中使用的“noImplicitAny”規則有問題,但我無法在tsconfig.json中對此進行檢查。

.eslintrc.js:

module.exports = {
    extends: [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
    ],
    parser: "@typescript-eslint/parser",
    parserOptions: {
        project: ["tsconfig.json"],
        sourceType: "module",
    },
    rules: {
        "no-undef": "warn",
    },
    plugins: ["@typescript-eslint"],
    settings: {
        "import/resolver": {
            node: {
                extensions: [".js", ".ts"],
            },
        },
    },
};

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "ES6",
    "declaration": true,
    "outDir": "./lib",
    "strict": true,
    "noImplicitAny": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "**/__tests__/*"]
}

簡而言之,我希望 eslint 檢查隱式的 any 並警告其使用。 我如何配置.eslintrc.js中的規則來實現這一點?

在 TypeScript-ESLint 中已經實現了許多no-unsafe-*規則:

同樣, no-explicit-any 把所有這些放在一起,你應該得到充分保護,免受any問題的影響。

eslint 拒絕添加 no-implicit-any,因為它復制了 typescript 規則。

然而,他們確實制定了一個不應永久使用的過渡規則,它可以滿足您的要求。 一旦可以在 tsconfig 文件中打開這些選項,就應該刪除此規則。

這允許對普通函數和箭頭函數中的隱式參數或 arguments 發出警告。 有比注釋掉的選項更多的選項,下面鏈接的文檔。

    '@typescript-eslint/typedef': [
      'warn',
      {
        parameter: true,
        arrowParameter: true,
        // variableDeclaration: true,
        // memberVariableDeclaration: true,
        // objectDestructuring: true,
      },
    ],

鏈接到 github 問題不允許 no-implicit-any https://github.com/typescript-eslint/typescript-eslint/issues/3979

typedef 信息的文檔 https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/typedef.md

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM