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

Javascript 如何在TSLint中对js和ts使用相同的规则,javascript,typescript,tslint,Javascript,Typescript,Tslint,我想在.js文件和.ts文件中使用相同的样式。我知道tslint.json中有jsRules属性,但我发现有两个问题: 复制蚂蚁粘贴完全相同的规则 扩展某些配置时,例如tslint react,您无法在jsRules中获得规则,这意味着您必须转到规则集的源代码并手动复制它 有没有其他方法可以在不同时维护eslint和tslint的情况下使用相同的代码样式?并非所有人都知道,但tslint配置不必包含在.json文件中。您可以使用.js扩展,并在其中保留您喜欢的任何逻辑 在这种情况下,我们可以

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

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

有没有其他方法可以在不同时维护eslint和tslint的情况下使用相同的代码样式?

并非所有人都知道,但tslint配置不必包含在
.json
文件中。您可以使用
.js
扩展,并在其中保留您喜欢的任何逻辑

在这种情况下,我们可以将TSLint规则分为两类-通用规则和特定规则。这两个规则集都将用于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”]}