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

时间:2017-10-18 12:44:19

标签: javascript typescript tslint

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

  • 复制蚂蚁粘贴完全相同的规则
  • 扩展某些配置时,例如tslint-react,你没有得到jsRules中的规则,这意味着你必须转到规则集的源代码并手动复制它。

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

1 个答案:

答案 0 :(得分:4)

并非所有人都知道,但是不一定要在.json文件中包含TSLint配置。您可以使用.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来实现。