如何在TSLint中对js和ts使用相同的规则

Vin*_*nys 13 javascript typescript tslint

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

  • 复制蚂蚁粘贴完全相同的规则
  • 在扩展某些配置时,例如tslint-react,您不会在jsRules中获取规则,这意味着您必须转到规则集的源代码并手动复制它.

任何其他方式具有相同的代码样式而不必同时维护eslint和tslint?

Kar*_*ski 5

并非所有人都知道这一点,但是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
  }
}
Run Code Online (Sandbox Code Playgroud)

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