关于tslint校验那些事儿

关于tslint校验那些事儿

话不多说,直接上校验(rlues)规则,tslint专用。

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

如有问题欢迎大家指出,我会及时纠正和补充的!!!

你可能感兴趣的:(关于tslint校验那些事儿)