【问题标题】:ESLint Rule to Exclude Certain Keywords and Phrases in Angular?ESLint 规则在 Angular 中排除某些关键字和短语?
【发布时间】:2020-04-09 07:12:10
【问题描述】:

如果人们使用某些“关键字/短语”,我需要编写一个 Angular Typescript 规则来警告他们。 例如,如果关键字“Birthdate”或“SSN”直接在源文件中,它应该给出警告。

有人会如何编写这条规则来限制使用 ESLint 的单词?

目前正在研究,在Stackoverflow文章搜索存档中没有看到任何文章,

好奇如何操作下面的示例代码或(对任何其他解决方案开放),

我在“id-blacklist”下面应用了以下内容:[“SSN”,“Birthdate”],接收错误

https://eslint.org/docs/rules/id-blacklist

module.exports = {
    "env": {
        "browser": true,
        "es6": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint"
    ],
    "rules": {
        "id-blacklist": ["SSN","Birthdate"]
    }
};

错误:

规则“id-blacklist”的配置无效:严重性应为以下之一:0 = 关闭、1 = 警告、2 = 错误

其他资源:

https://rangle.io/blog/custom-tslint-for-angular/

https://medium.com/@andrey.igorevich.borisov/writing-custom-tslint-rules-from-scratch-62e7f0237124

【问题讨论】:

  • 嗯...您不认为 git pre-commit 挂钩可能是更好的选择吗? TSLint 不是被弃用了吗?
  • 嗨@JaredSmith,我们的代码中已经有这样的示例,希望标记为警告

标签: javascript angular typescript eslint tslint


【解决方案1】:

'no-restricted-syntax': [
      'error',
      'Literal[value=/^(special|zzz|xxx)$/i]',
      'BinaryExpression[right.value = /^(special|zzz|xxx)$/i]',
    ],

这条规则对我有用,我的要求是我们不希望某些密钥成为 repo 中的硬代码。

如果您的代码如下所示,则会显示错误:

const t = {
    pp: 'special',
};

const tt = 'special',

const f = (arg) => {
  return arg === 'special';
}

function ff(arg) {
  return arg === 'special';
}

【讨论】:

    【解决方案2】:

    我通过管道检查完成了它,但您可以使用预提交,如下所示: Is it possible to ban a list of words with ESlint or anything else when pre-commit?

    你可以像这样使用 ESlint [TSlint is deprecated] 来做到这一点: https://eslint.org/docs/rules/id-blacklist

    【讨论】:

    • 嗨,不要试图阻止预先提交,我希望它允许,只是警告
    • 寻找编码示例,这有帮助
    • 因此,如果对您有帮助,您可以查看第二个解决方案,请点赞并标记为答案。
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多