命名规范
变量名不使用下划线**_**
JS程序员习惯使用_开头来命名私有属性。但是TS中有完善的访问描述符,所以应避免使用下划线。
不使用**I**命名接口
TS官网不建议接口名前加I。TS是结构化类型系统,类也可以被implements,接口也可以被extends,类和接口的界限比较模糊。
普通文件或目录使用分隔符**-**命名
普通文件或目录使用分隔符-命名。
类文件名必须与类名一致
普通文件或目录使用分隔符-命名。
但是如果文件只输出一个类,那么文件名必须和类名完全一致。也就是文件名和默认导出保持一致。
类
始终指定访问修饰符
TS默认访问修饰符是public,始终指定访问修饰符可以避免意外暴露接口。
一个模块一个类
如果一个模块导出一个类,那么可以使用类名命名该文件。
一个文件存在多个平级类,很难表达它们之间的关系。
函数
只使用**Error**类,或其子类来表达异常
throw new Error('message')
不使用**null**
避免使用null,推荐使用undefined
不适用**var**
TS 相关
不使用any
使用T[]取代Array来声明数组
使用interface取代type
使用as取代<>进行类型断言
