# TypeScript 编码风格
::: details 目录
[[toc]]
:::

## 基本准则
关于代码风格，没有谁对谁错，不同的人有不同的偏好。为了保持致的团队编码风格，降低代码阅读工作量，编码风格的确认采用最如下基本原则。

* 代码风格要求可读性第一，效率第二。对于有特殊要求的代码，必须编写专门的详细的代码说明文档；
* 编码偏好少数服从多数，个人服从团队；
* 有争论时，由 TeamLeader 最终决定编码风格；
* 使用 ```eslint + prettier``` 规范代码风格。代码必须通过 ```eslint``` 检查；
* 为保持一致。当有更好的编码风格被团队受时，老代码也要修改为新的编码风格；

## 编码规范
* 每个源码文件都必须加注释头。
* 所有的类、接口、枚举、函数、属性、入参、返回值都必须加注释。
* 一行代码不超过 120 个字符，单个函数的程序行数不超过 200 行。
* 不使用的代码，尽早删除，避免垃圾程序。
* 属性的作用域尽可能小，在没有明确要求前，优先使用 ```private``` 。优先级 ```private->protected->public```。
* 变量优先使用 ```const``` 定义，除非在后续的代码中要修改变量的值改为 let 。
* 对表达式容易混淆优先级的运算符，使用括号以避免二义性。
* 利用缩进来显示程序的逻辑结构，缩进量一致并以 Tab 键为单位(定义 Tab 为 4 个空格)。
* 循环、分支嵌套层次不要超过五层。
* 注释可以与语句在同一行的右端，也可以在上行。
* 一目了然的语句不加注释。
* 代码的注释率（注释行数/文件总行数）不低于 40%。
