排版
::: details 目录
[[toc]]
:::
基本要求
- 一个文件中只能定义一个类。
- 每行字符不超过 120 个字符,一个函数最多 200 行代码。
- 一行只允许有一条语句。
- 一行只允许定义一个变量。
if
、else if
、else
、for
、while
强制使用大括号。只有一行代码也要用大括号括起来。
- 不得省略语句结束的分号。
- 类的
public
类型属性与函数不加访问修饰符;
- 如果函数没有返回值,必需使用
void
;
- 如果函数体为空,必须加注释”
// do nothing
“明确标明。
typescript
f(x: number, y: string): void {
// do nothing
}
- 如果函数还未完成,必须加注释”
// todo:
原因“标明。
typescript
typeList(): Array<string> {
// todo: 类型列表未确认
return null;
}
程序各部分的放置顺序
- 文件注释头
import
导入引用的包
- 类、接口、枚举注释
- 定义类、接口、枚举
- 属性按
public
、protected
、private
顺序定义。相关的属性定义在一起
- 构造函数的定义放在所有函数前
- 函数按
public
、protected
、private
顺序定义。相关的函数定义在一起
- 重载函数时,实现函数放在重载函数的最后
留空
空行
- 相对独立的程序块之间应加空行。
- 代码块之间需隔一个空行(即”}“符号后跟一个空行),如果”}“后是上层代码的”}“,则不加空行。
- 属性定义与函数定义之间隔一空行。
- 属性与属性之间隔一空行。
- 属性的
get
/set
不留空行。
- 每个函数定义与之前的代码之间隔一空行。
缩进
- 禁止使用空格和 tab 混合缩进,缩进控制每级 4 个空格。
- 代码层级通过”{“与"}”标注,“{”进一级,“}”退一级。
- “{”与代码定义(类、接口、枚举、函数、
if
、switch
、for
、while等
)处于同一行。
switch
与 case
为同级代码(缩进相同),case
后代码缩进一级。
空格
- 逗号,冒号后要有一个空格。
- 运算符(数值、关系、逻辑)前后要有一个空格。非运算符(!)与取负运算符(-)不要空格。
- 类的继承符号“:“前后要保留一个空格。
- 函数返回类型,“:”与括号之间无空格,与返回值类型间有一个空格。
- 函数名与小括号间没有空格。
- 定义变量、属性、函数入参。名称后直接跟”:“,不需要空格。”:“与类型之间有一个空格。
- 小括号里开始不需要空格。
for
、if
、else
、switch
与小括号间有一个空格。