【问题标题】:Eslint no-use-before-define with singletonEslint no-use-before-define with singleton
【发布时间】:2021-12-30 12:26:29
【问题描述】:

我最近创建了一个新的 repo,当我创建一个单例类时,我在 _instance 的类型上收到一个 eslint no-use-before-define 错误。这虽然其他 repo 中的相同代码没有给出此错误。代码本身有效,我可以禁用该规则,但我想知道为什么会这样。

export class UserService {
  private static _instance: UserService;

  public static get instance(): UserService {
    if (!UserService._instance) {
      UserService._instance = new UserService();
    }

    return UserService._instance;
  }

  private constructor() { }
}

.eslintrc.json(规则在airbnb-basethis file中声明)

{
  "env": {
    "browser": false,
    "es6": true,
    "node": true
  },
  "extends": ["airbnb-base","airbnb-typescript/base", "prettier"],
  "globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly",
    "Express": "readonly"
  },
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "plugins": ["@typescript-eslint", "prettier"],
  "rules": {
    "prettier/prettier": ["error"],
    "class-methods-use-this": "off",
    "no-underscore-dangle": "off",
    "import/prefer-default-export": "off",
    "no-console": "off",
    "no-unused-vars": "off",
    "no-shadow": "off",
    "@typescript-eslint/no-shadow": "error",
    "@typescript-eslint/no-unused-vars": [
      "error",
      {
        "vars": "all",
        "args": "after-used",
        "ignoreRestSiblings": false
      }
    ],
    "no-useless-constructor": "off",
    "@typescript-eslint/no-useless-constructor": "error",
    "no-empty-function": [
      "error",
      {
        "allow": ["constructors"]
      }
    ],
    "import/extensions": [
      "error",
      "ignorePackages",
      {
        "js": "never",
        "ts": "never"
      }
    ],
    "camelcase": "off",
    "import/no-extraneous-dependencies": "off"
  },
  "overrides": [],
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".ts"]
      }
    }
  }
}

【问题讨论】:

    标签: typescript eslint typescript-eslint


    【解决方案1】:

    出于某种奇怪的原因,重新启动 eslint 服务器(或 vscode)并没有解决任何问题,但是重新启动我的笔记本电脑并重新安装节点模块解决了问题...

    【讨论】:

      猜你喜欢
      • 2021-06-25
      • 1970-01-01
      • 2017-09-11
      • 2021-05-04
      • 1970-01-01
      • 2020-08-01
      • 2020-03-23
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多