tslint-rulesss
npm install tslint @typeshell/tslint-rules --save-dev
在项目目录建立tslint.json
extends表示采用的集合 rules可以覆盖在extends中引入的规则集合
{
"defaultSeverity": "error",
"extends": [
// "tslint:recommended"
"tslint-auto-fixable-format"
],
"jsRules": {},
"rules": {
"no-boolean-literal-compare": true,
"variable-name": [
true,
"ban-keywords",
"check-format",
"allow-leading-underscore",
"allow-snake-case"
],
"object-literal-sort-keys": false,
"no-any": false
},
"rulesDirectory": []
}
tslint --project tsconfig.json # 列出
tslint --fix --project tsconfig.json # 尝试修复
使用
package.json
"scripts": {
"lintfix": "tslint --fix --project .",
"lintfix1": "tslintlevel=1 tslint --fix --project .; exit 0",
"lintfix2": "tslintlevel=2 tslint --fix --project .; exit 0"
}
tslint.json
{
"extends": [
"@typeshell/tslint-rules"
],
"jsRules": {},
"rules": {},
"rulesDirectory": [],
"linterOptions": {
"exclude": [
"src/**/*.test.ts"
]
}
}
规则分类
- 格式类,可自动修复 -> rule set 1,不提示;采用保存即自动格式化/提交自动格式化的设计,确保代码在repo按照统一的代码规范
- 不可自动修复 -> 作为第二个rule set,不断提示
- 其他未定义的ruleset
规则
- 开发环境:增加开发和调试效率,但需要借助tslint来去掉可能的bug
- 发布环境:保证代码的clean,去掉重复的代码
Tag
- has fixer
- novel unfriendly
- dev unfriendly
TODO: 采用 microsoft-contribute
https://github.com/Microsoft/tslint-microsoft-contrib
TODO: 不同变量名称的命名规范
TODO: 参考术语体系的命名规范
TODO
部分规则在大部分时候不需强制,但在某些情况下需要。例如 object-literal-sort-keys
这个规则,在大部分时候不使用,但在某些代码却可以作为自动格式化的一种方案。
与tsfmt
多一事不如少一事,虽然tsfmt会参考tslint的配置,但tslint已经起到格式化代码的效用,因此暂定无需引入。 如果我在此事有考虑不周的情况,请告知