【发布时间】: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