UNPKG

echo-fecs

Version:

Front End Code Style Suite

166 lines (165 loc) 6.01 kB
601: level: 1 desc: "[建议] ESNext 语法的 JavaScript 文件使用 `.js` 扩展名。" 602: level: 2 desc: "[强制] 当文件无法使用 `.js` 扩展名时,使用 `.es` 扩展名。" 603: level: 1 desc: "[建议] 使用多行模板字符串时遵循缩进原则。当空行与空白字符敏感时,不使用多行模板字符串。" 604: level: 2 desc: "[强制] 使用 `generator` 时,`*` 前面不允许有空格,`*` 后面必须有一个空格。" 605: level: 2 desc: "[强制] 类声明结束不允许添加分号。" 606: level: 2 desc: "[强制] 类成员定义中,方法定义后不允许添加分号,成员属性定义后必须添加分号。" 607: level: 2 desc: "[强制] `export` 语句后,不允许出现表示空语句的分号。" 608: level: 2 desc: "[强制] 属性装饰器后,可以不加分号的场景,不允许加分号。" 609: level: 2 desc: "[强制] 箭头函数的参数只有一个,并且不包含解构时,参数部分的括号必须省略。" 610: level: 1 desc: "[建议] 箭头函数的函数体只有一个单行表达式语句,且作为返回值时,省略 `{}` 和 `return`。" 611: level: 1 desc: "[建议] 箭头函数的函数体只有一个 `Object Literal`,且作为返回值时,使用 `()` 包裹。" 612: level: 2 desc: "[强制] 解构多个变量时,如果超过行长度限制,每个解构的变量必须单独一行。" 613: level: 2 desc: "[强制] 使用 `let` 和 `const` 定义变量,不使用 `var`。" 614: level: 2 desc: "[强制] 不要使用3层及以上的解构。" 615: level: 1 desc: "[建议] 使用解构减少中间变量。" 616: level: 2 desc: "[强制] 仅定义一个变量时不允许使用解构。" 617: level: 2 desc: "[强制] 如果不节省编写时产生的中间变量,解构表达式 `=` 号右边不允许是 `ObjectLiteral` 和 `ArrayLiteral`。" 618: level: 2 desc: "[强制] 使用剩余运算符时,剩余运算符之前的所有元素必需具名。" 619: level: 2 desc: "[强制] 字符串内变量替换时,不要使用 `2` 次及以上的函数调用。" 620: level: 1 desc: "[建议] 使用变量默认语法代替基于条件判断的默认值声明。" 621: level: 2 desc: "[强制] 不要使用 `arguments` 对象,应使用 `...args` 代替。" 622: level: 2 desc: "[强制] 一个函数被设计为需要 `call` 和 `apply` 的时候,不能是箭头函数。" 623: level: 1 desc: "[建议] 定义对象时,如果所有键均指向同名变量,则所有键都使用缩写;如果有一个键无法指向同名变量,则所有键都不使用缩写。" 624: level: 2 desc: "[强制] 定义方法时使用 `MethodDefinition` 语法,不使用 `PropertyName: FunctionExpression` 语法。" 625: level: 1 desc: "[建议] 使用 `Object.keys` 或 `Object.entries` 进行对象遍历。" 626: level: 1 desc: "[建议] 定义对象的方法不应使用箭头函数。" 627: level: 1 desc: "[建议] 尽量使用计算属性键在一个完整的字面量中完整地定义一个对象,避免对象定义后直接增加对象属性。" 628: level: 2 desc: "[强制] 使用 `class` 关键字定义一个类。" 629: level: 2 desc: "[强制] 使用 `super` 访问父类成员,而非父类的 `prototype`。" 630: level: 2 desc: "[强制] `export` 与内容定义放在一起。" 631: level: 1 desc: "[建议] 相互之间无关联的内容使用命名导出。" 632: level: 2 desc: "[强制] 所有 `import` 语句写在模块开始处。" 633: level: 1 desc: "[建议] 对数组进行连接操作时,使用数组展开语法。" 634: level: 1 desc: "[建议] 不要使用数组展开进行数组的复制操作。" 635: level: 1 desc: "[建议] 尽可能使用 `for .. of` 进行遍历。" 636: level: 2 desc: "[强制] 当键值有可能不是字符串时,必须使用 `Map`;当元素有可能不是字符串时,必须使用 `Set`。" 637: level: 1 desc: "[建议] 需要一个不可重复的集合时,应使用 `Set`。" 638: level: 1 desc: "[建议] 当需要遍历功能时,使用 `Map` 和 `Set`。" 639: level: 1 desc: "[建议] 程序运行过程中有添加或移除元素的操作时,使用 `Map` 和 `Set`。" 640: level: 2 desc: "[强制] 回调函数的嵌套不得超过3层。" 641: level: 1 desc: "[建议] 使用 `Promise` 代替 `callback`。" 642: level: 2 desc: "[强制] 使用标准的 `Promise` API。" 643: level: 2 desc: "[强制] 不允许直接扩展 `Promise` 对象的 `prototype`。" 644: level: 2 desc: "[强制] 不得为了编写的方便,将可以并行的IO过程串行化。" 645: level: 1 desc: "[建议] 使用 `async/await` 代替 `generator` + `co`。" 646: level: 1 desc: "[建议] 持续跟进与关注运行环境对语言特性的支持程度。" 647: level: 2 desc: "[强制] 在运行环境中没有 `Promise` 时,将 `Promise` 的实现 `shim` 到 `global` 中。" 648: level: 1 desc: "[建议] 使用 `babel` 做为预编译工具时,建议使用 `5.x` 版本。" 649: level: 1 desc: "[建议] 使用 `babel` 做为预编译工具时,通过 `external-helpers` 减少生成文件的大小。" 650: level: 1 desc: "[建议] 使用 `TypeScript` 做为预编译工具时,建议使用 `1.6+` 版本。" 651: level: 1 desc: "[建议] 使用 `TypeScript` 做为预编译工具时,不使用 `tsc` 命令。" 652: level: 1 desc: "[建议] 生成的代码在浏览器环境运行时,应生成 AMD 模块化代码。" 653: level: 1 desc: "[建议] 浏览器端项目中如果 ESNext 代码和 ES3/5 代码混合,不要使用 `TypeScript` 做为预编译工具。" 654: level: 1 desc: "[建议] AMD/CommonJS 模块依赖 ESNext 模块时,AMD/CommonJS 模块对 default export 的 require 需要改造。" 655: level: 1 desc: "[建议] ESNext 的文件中,不要使用 `require`。"