tslint.json的配置项说明
extends: 内设配置项名称
rules: 规则
{
//ts专用
adjacent- overload- signatures : true, // Enforces function overloads to be consecutive.
ban- comma- operator: true, //禁止逗号运算符。
ban-type: [ true, [ "object", "User {} instead."],[ "string"]] //禁止类型
member- access: [ true , "no-public"|| "check-accessor"|| "check-constructor" || "check-parameter-property" ] , //类成员必须声明 private public ....
member-order: [ true, { order:....}], //类声明排序
no-any: true, //不需使用any类型
no- empty-interface: true //禁止空接口 {}
no- import- side- effect: [ true, {" ignore- module": "(\\. html|\\. css) $"}], //禁止导入带有副作用的语句
no- inferrable- types:[ true, "ignore-params", "ignore-properties"], //不允许将变量或参数初始化为数字,字符串或布尔值的显式类型声明。
no- internal- module: true, //不允许内部模块
no- magic- numbers: [ true,1,2,3], //不允许在变量赋值之外使用常量数值。当没有指定允许值列表时,默认允许-1,0和1
no- namespace: [ true, "allpw-declarations"], //不允许使用内部modules和命名空间
no- non- null- assertion: true , //不允许使用!后缀操作符的非空断言。
no- parameter- reassignment: true, //不允许重新分配参数
no- reference: true, // 禁止使用/// <reference path=> 导入 ,使用import代替
no- unnecessary- type- assertion: true, //如果类型断言没有改变表达式的类型就发出警告
no- var- requires: true, //不允许使用var module = require("module"),用 import foo = require('foo')导入
only- arrow- functions:[ true, "allow-declarations", "allow-named-functions"], //允许箭头表达式,不需要传统表达式 ; 允许独立的函数声明 ;允许表达,function foo() {}但不是function() {}
prefer- for- of: true, //建议使用for(..of)
promise- function- async: true, 要求异步函数返回promise
typedef: [ true, "call-signature", "parameter", "member-variable-declaration"], //需要定义的类型存在
typedef- whitespace: true, //类型声明的冒号之前是否需要空格
unified- signatures: true, //重载可以被统一联合成一个
//function 专用
await- promise: true, //警告不是一个promise的await
ban: [
true,
"eval",
{" name": " $", " message": " please don' t"},
[ "describe", "only"],
{" name": [" it", " only"], " message": " don' t focus tests"},
{
" name": [" chai", " assert", " equal"],
" message": " Use ' strictEqual' instead."
},
{" name": [" *", " forEach"], " message": " Use a regular for loop instead."}
],
curly: true, //for if do while 要有括号
forin: true, //用for in 必须用if进行过滤
import- blacklist: true, //允许使用import require导入具体的模块
label- postion: true, //允许在do/for/while/swith中使用label
no- arg: true, //不允许使用 argument.callee
no- bitwise: true, //不允许使用按位运算符
no- conditional- assignmen: true, //不允许在do-while/for/if/while判断语句中使用赋值语句
no- console: true, //不能使用console
no- construct: true, //不允许使用 String/Number/Boolean的构造函数
no- debugger: true, //不允许使用debugger
no- duplicate- super: true, //构造函数两次用super会发出警告
no- empty: true, //不允许空的块
no- eval: true, //不允许使用eval
no- floating- promises: true, //必须正确处理promise的返回函数
no- for- in- array: true, //不允许使用for in 遍历数组
no- implicit- dependencies: true, //不允许在项目的package.json中导入未列为依赖项的模块
no- inferred- empty- object- type: true, //不允许在函数和构造函数中使用{}的类型推断
no- invalid- template- strings: true, //警告在非模板字符中使用${
no- invalid- this: true, //不允许在非class中使用 this关键字
no- misused- new: true, //禁止定义构造函数或new class
no- null- keyword: true, //不允许使用null关键字
no- object- literal- type- assertion: true, //禁止objext出现在类型断言表达式中
no- return- await: true, //不允许return await
arrow- parens: true, //箭头函数定义的参数需要括号
}
"quotemark":[true, "single","avoid-escape"], //引号的使用规则
"semicolon":[true, "never", "ignore-interfaces"], //分号的使用规则
"indent":[true, "tabs", 2], //使用Tab进行缩进,每次强制缩进2个字符
"typedef-whitespace": false, //在类型定义的时候,是否允许使用空格, 使用false,表示不对此项进行校验,不启用此项的校验
"whitespace": false, //空格的校验
"member-access": false, //类成员的显示可见性声明,即显示定义一个类的成员是否可见,即对类成员定义public | static 等
"one-line": false, //要求指定的标记与它们之前的表达式位于同一行
"trailing-comma": [true, { //对尾随逗号的校验
"multiline": {
"objects": "ignore",
"arrays": "never",
"functions": "never",
"typeLiterals": "ignore"
},
"esSpecCompliant": true //是否允许尾随逗号出现在剩余变量中
}]