首页 > 解决方案 > 启用 linter 对 json.parse 中的任何类型发出警告

问题描述

我确信这是已经被多次询问过的问题,但我根本无法使用 typescript-eslint 得到与类型“any”相关的错误我在 src\index.ts 中有一些示例代码

const testArray = [1, 2, 3];
const testString = JSON.stringify(testArray);
const test_Array2 = JSON.parse(testString);

console.log(test_Array2.length);

我已经根据我的知识配置了 .eslintrc

{
  "root": true,
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "tsconfigRootDir": "./",
    "project": ["./tsconfig.json"]
  },
  "plugins": ["@typescript-eslint"],
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking"
  ],
  "rules": {},
  "env": {
    "browser": true,
    "node": true
  }
}

我有一个非常简约的 package.json

{
  "name": "typescript-starter",
  "version": "1.0.0",
  "description": "test.",
  "main": "index.js",
  "scripts": {
    "lint": "eslint . --ext .ts"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^12.7.2",
    "@typescript-eslint/eslint-plugin": "^2.34.0",
    "@typescript-eslint/parser": "^2.34.0",
    "eslint": "^6.8.0",
    "rimraf": "^3.0.0",
    "typescript": "^4.3.5"
  },
  "dependencies": {}
}

和非常简单的 tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true,
    "lib": ["es6"],
    "allowJs": true,
    "outDir": "build",
    "rootDir": "src",
    "strict": true,
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "types": ["node"],
    "typeRoots": ["./node_modules/@types"]
  },
  "include": ["src/**/*"]
}

我的期望是,linter 应该抱怨我使用 test_Array2.length,因为 test_Array2 具有 any 类型(并且在 @typescript-eslint/recommended 中禁止隐式使用 any 类型)。相反,我得到的唯一错误与驼峰式有关(这证明我的配置实际上正在检查某些东西)

  3:7   error  Identifier 'test_Array2' is not in camel case  @typescript-eslint/camelcase
  5:13  error  Identifier 'test_Array2' is not in camel case  @typescript-eslint/camelcase

我正在使用 @typescript-eslint/eslint-plugin@2.34.0 和 @typescript-eslint/parser@2.34.0 (基本上是最新版本)

有人可以为我应该改变什么以实际从 linter 中得到错误带来一些启示吗?

标签: jsontypescripteslint

解决方案


推荐阅读