【问题标题】:How to use the same rules for js and ts in TSLint如何在 TSLint 中对 js 和 ts 使用相同的规则
【发布时间】:2018-03-30 08:18:22
【问题描述】:

我想在 .js 文件和 .ts 文件中使用相同的样式。我知道 tslint.json 中有 jsRules 属性,但我发现它有 2 个问题:

  • 复制蚂蚁粘贴规则一模一样
  • 扩展某些配置时,例如tslint-react,你在jsRules中没有得到规则,意味着你必须去规则集的源代码,手动复制。

有没有其他方法可以拥有相同的代码风格而不必同时维护 eslint 和 tslint?

【问题讨论】:

    标签: javascript typescript tslint


    【解决方案1】:

    不是每个人都知道这一点,但 TSLint 配置不必放在 .json 文件中。您可以使用.js 扩展,并在其中保留您喜欢的任何逻辑。

    在这种情况下,我们可以将 TSLint 规则分为两类——通用规则和特定于 React 的规则。两个规则集都将用于 TypeScript 文件,但只有第一个规则集将应用于 JavaScript。

    tslint.js

    const UNIVERSAL_RULES = {
      "max-line-length": [true, 120]
    }
    
    const REACT_RULES = {
      "jsx-space-before-trailing-slash": true
    }
    
    module.exports = {
      extends: [
        "tslint:recommended"
      ],
      jsRules: UNIVERSAL_RULES,
      rules: {
        ...UNIVERSAL_RULES,
        ...REACT_RULES
      }
    }
    

    运行 TSLint CLI 时,可能需要明确指向您的配置文件。您可以通过将--config tslint.js 添加到您的tslint 命令来做到这一点。

    【讨论】:

    • 您也可以将*.js 文件导入到您的根tslint.config 文件中,因为tslint 在后台使用NodeJS 导入解析...所以如果您有dynamiclint.js,它会导入在你的根目录下就好了tsconfig.json:{ "extends": [ "./dynamiclint" ] }
    猜你喜欢
    • 2020-01-26
    • 2020-07-24
    • 2020-03-24
    • 2019-10-24
    • 2017-05-14
    • 2019-05-12
    • 2019-09-18
    • 2020-02-26
    • 2021-05-07
    相关资源
    最近更新 更多