echo-fecs
Version:
Front End Code Style Suite
166 lines (165 loc) • 6.01 kB
YAML
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`。"