一.前言。浏览器端编程的行为规范。typescript也尽量遵循该规则。
二.代码风格。
2.1 无 BOM
的 UTF-8
编码;
2.2 文件结尾处加一空行;
2.2 使用 4
个空格做为一个缩进层级
2.3 二元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格
2.4 左花括号前必须有一个空格;
2.5 关键词后必须有一个空格;
2.6 在对象创建时,属性中的 :
之后必须有空格,:
之前不允许有空格;
2.7 函数名形参后的“(”不能有空格;
2.8 ()和[]内不允许有空格;
2.9 每行不得超过 120
个字符;
3.0 运算符处换行时,运算符必须在新行的行首;
3.1 不同行为或逻辑的语句集,使用空行隔开,更易阅读;
3.2 将“){”放在一行;
3.3 数组和对象初始化的混用,严格按照每个对象的 { 和结束 } 在独立一行的风格书写。
如:var array=[
{
//doSomething...
},
{
//doSomething...
}
];
3.4 对于 if...else...
、try...catch...finally
等语句,推荐使用在尾 }
号后添加一个换行 的风格
if (condition) {
//doSomething...
}
else {
//doSomething...
};
3.5 函数定义结束不允许添加分号
例如: function () {
//dosometing
}
三.命名
3.1 变量
使用 Camel命名法
;
3.2 常量
使用 全部字母大写,单词间下划线分隔
的命名方式;
3.3 类
使用 Pstringascal命名法
; 例如:CatClass;
3.4 枚举变量
使用 Pascal命名法
,枚举的属性
使用 全部字母大写,单词间下划线分隔
的命名方式;
3.5 命名空间
使用 Camel命名法
;
3.6 类名
使用 名词
;
3.7 函数名
使用 动宾短语;
3.8 boolean
类型的变量使用 is
或 has
开头;
3.9 Promise对象
用 动宾短语的“进行时”
表达;
四.注释
4.1 //
后跟一个空格;
4.2 文档注释前必须空一行;
4.3 文档说明 what,而不是 how;
4.4 {Array<string>} string类型的数组;
{(number|boolean)} 多类型;
{?number} 允许为Null;
{!Object} 不允许为Null;
{function(number, boolean):string} 函数, 形参, 返回值类型;
@param {string=} name 可选参数, =为类型后缀;
@param {...number} args 变长参数, ...为类型前缀;
{*} 任意类型;
@param {*=} name 可选任意类型;
@param {...*} args 变长任意类型;
4.5 文件顶部必须包含文件注释,用 @file和@author等
标识文件说明;
4.6 使用 @extends
标记类的继承信息;
4.7 // null 或 undefined
// good
if (noValue == null) {
// ......
}
五.