react规则基于eslint-plugin-react、eslint-plugin-react-hooks、typescript-eslint插件定义!
rules规则可参考相应插件文档配置

JS规范

  1. 强制组件中key参数,不能用索引(警告)
  2. 禁止重复导入
  3. 禁止模块导入自己
  4. 禁止重新设置 函数形参
  5. 禁止没有子组件的额外结束标签
  6. 允许解析props参数给 react组件使用
  7. 允许不初始化state参数,即可使用
  8. 允许在使用propsstatecontext时,不去解析赋值参数
  9. 不强制组件必须定义defaultProps参数
  10. 不强制空组件定义方式,<></>
  11. 不强制返回的组件,必须有括号包裹
  12. 不禁用createClass.propTypes验证规则
  13. 不强制组件方法顺序,如生命周期,按指定方式写,如果生命周期有引用其它方法,必须在生命周期上面声明
  14. 不强制函数返回<div></div>等组件时,必须引入react
  15. 不强制每一行都是独立的jsx元素
  16. 不强制generator 函数中 * 号周围有空格
  17. 不强制在函数括号内使用一致的换行
  18. 不强制导入模块时,必须解构出来的参数
  19. 不强制node_modules模块必须在 本地模块之前导入
  20. 不强制default默认导出
  21. 允许循环依赖关系
  22. 只有一个导出时,不强制设置成默认导出
  23. 不禁止默认导出
  24. 不禁止使用无关的包
  25. 验证导入名称,是否是模块中导出的名称
  26. 不验证默认导出名称,必须和引入模块名称一致
  27. 不限制 确保在导入路径中使用一致文件扩展名
  28. 不限制 import require 语句中出现不必要的路径段
  29. 不限制 声明的元素必须有交互式的作用
  30. 不限制 带有单击处理可见的非交互式元素必须至少具有一个键盘侦听器
  31. 不限制 静态HTML元素标签语义化,必须带有role
  32. 不限制a标签的href必须带参数
  33. 不限制import 排序
  34. 不强制使用类方法上this
  35. 不强制使用一致的换行符风格
  36. 不禁止直接使用 Object.prototypes 的内置属性
  37. 不限制 如果模块中只有一个导出,则最好使用默认导出而不是命名导出
  38. 不限制箭头函数主体是否必须花括号
  39. 不限制箭头函数参数中需要括号
  40. 不限制 大括号内强制执行一致的换行符
  41. 不限制 隐式箭头必须换行符
  42. 不禁止eslint-disable不带规则名称的注释
  43. 不禁止括号前有空格

TS规范

  1. 必须使用T[]声明数组类型
  2. 强制使用记录类型Record
  3. 强制使用一致的类型导入
  4. 限制访问对象必须使用.点号
  5. 禁止使用空断言! ===语法
  6. 限制成员重复命名
  7. 禁止重复导入
  8. 禁止声明空接口
  9. 禁止使用for in循环数组
  10. 禁止 this 关键字在类或类对象之外出现
  11. 禁止循环中声明函数
  12. 强制执行newconstructor时,有效的定义类型
  13. 禁止使用自定义的TS模块和命名空间,应加前缀declare
  14. 禁止在可选链表达式后使用非空断言
  15. 禁止在类构造函数中使用参数属性
  16. 禁止变量重新声明
  17. 禁止在外部作用域中声明 相同变量名称
  18. 禁止将变量分配给this
  19. 限制异常抛出内容语法,而非空内容等
  20. 禁止未使用的表达式
  21. 禁止未使用过的变量
  22. 禁止提前使用变量、属性、方法
  23. 禁止不必要的构造函数
  24. 需要在类型注释周围保持一致的间距
  25. 需要存在类型注释
  26. 使用联合类型对switch进行枚举检查
  27. 禁止通过使用重载方法,重置函数的传入参数类型
  28. 禁止使用特定类型,如内置的别名
  29. 不禁止未声明的变量
  30. 不限制 重载成员必须是连续的
  31. 不允许无意义的await
  32. 不禁止使用带规则名称的注释
  33. 不禁止tslint注释
  34. 不限制必须大括号风格
  35. 不限制 类上面方法名调用风格一致
  36. 不允许对象尾部逗号
  37. 不强制逗号后空格
  38. 不强制使用类型断言
  39. 不限制 typeinterface声明命名
  40. 不强制将默认参数放在最前面
  41. 不限制 需要函数和类方法显式返回类型
  42. 不限制调用方法括号的间隔,允许空格
  43. 不强制一致缩进
  44. 不限制关键字(try, if)前台使用一致间距
  45. 不禁止类成员之间必须空行
  46. 接口和类型换行样式 不限制统一,可设置; ,或空
  47. 不限制换行样式
  48. 不限制声明字段和使用必须顺序一致
  49. 不限制Array声明构造函数
  50. 不限制toString使用场景
  51. 不要求 void 类型的表达式出现在语句位置
  52. 不限制删除运算符
  53. 不限制空函数
  54. 不限制额外的非空断言
  55. 不限制不必要的括号
  56. 不限制不必要的分号
  57. 不禁止使用类作为命名空间
  58. 不强制promise去做catch错误处理
  59. 不限制catcherrorany类型
  60. 不限制eval()语法
  61. 允许对参数、变量和属性进行显式类型声明
  62. 不限制使用void泛型或返回类型之外的类型
  63. 不限制丢失精度的数字
  64. 不限制使用魔术数字
  65. 不限制promise使用它、判断它的地方使用
  66. 允许调用require()语法
  67. 不禁止在外部作用域中声明 相同变量名称
  68. 不限制使用类型别名
  69. 不限制布尔值与其它参数相等比较
  70. 不限制变量、类型始终为真/假条件
  71. 不限制命名空间调用自身类型
  72. 不禁止泛型参数的默认参数,与声明时类型一致
  73. 不限制变量声明时,必声明类型
  74. 不禁止对泛型类型 不必要的约束
  75. 允许将any分配给其它变量和属性
  76. 允许调用任何类型变量为any的值
  77. 不禁止any类型访问任何类型的变量
  78. 允许从函数中返回any类型
  79. 不检测as显式类型转换
  80. 不限制优先使用as const语法
  81. 不限制enum显式初始化每个成员值
  82. 不限制使用for of语法
  83. 不限制只使用函数类型声明,接口类型声明也可以
  84. 不强制includes方法优于indexOf方法
  85. 不限制所有枚举成员都是文字值
  86. 不强制使用namespace关键字,而不是module关键字
  87. 不强制使用空合并运算符
  88. 不强制使用可选链表达式,链式逻辑与也可以
  89. 不要求将私有成员标记为readonly在构造函数
  90. 不要求将函数中的参数标记为只读的
  91. 不限制优先使用类型参数Array#reduce而不是强制转换
  92. 不强制正则以一致的方式使用,应用于字符串
  93. 不强制使用字符串方法时,使用startsWithendsWith替换其它用法
  94. 关闭@ts-ignore语法
  95. 不强制 需要返回promise的函数方法被标记为async
  96. 不限制Array.sort调用始终提供compare参方法
  97. 不禁止使用不带 await 表达式的 async 函数
  98. 不限制添加2个变量时,操作数必须都是数字或字符串类型
  99. 不强制字符串模板里面内容,必须是字符串类型
  100. 不禁止不必要的return await
  101. 不要求使用分号在结尾处
  102. 不要求禁止在函数括号前有空格
  103. 不要求中缀操作符周围有空格
  104. 不限制布尔表达式中允许的类型
  105. 不让使用设置三斜杠指令与 ES6 样式导入声明的优先级
  106. 不强制使用超预期范围的方法,如在类某方法中调用this(全局)
  107. 不强制使用骆驼拼写法
  108. 不禁止使用 require 语句
  109. 不限制在类属性和方法上使用显式可访问性修饰符
  110. 不限制interface声明的类型,必须以I为前缀
  111. 不禁止使用!后缀运算符进行非空断言
  112. 不禁止使用any类型
  113. 不强制要求导出函数和类中方法,必须显式声明返回类型
  114. 不对整体项目 强制性命名约定统一风格