如何在 TSLint 中对 js 和 ts 使用相同的规则
Posted
技术标签:
【中文标题】如何在 TSLint 中对 js 和 ts 使用相同的规则【英文标题】:How to use the same rules for js and ts in TSLint 【发布时间】:2018-03-30 08:18:22 【问题描述】:我想在 .js 文件和 .ts 文件中使用相同的样式。我知道 tslint.json 中有 jsRules 属性,但我发现它有 2 个问题:
复制蚂蚁粘贴规则一模一样 扩展某些配置时,例如tslint-react,你在jsRules中没有得到规则,意味着你必须去规则集的源代码,手动复制。有没有其他方法可以拥有相同的代码风格而不必同时维护 eslint 和 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" ]
以上是关于如何在 TSLint 中对 js 和 ts 使用相同的规则的主要内容,如果未能解决你的问题,请参考以下文章