TypeScript 代码规范

前端开发·TypeScript · 2022-07-11

命名

  1. 使用 PascalCase 为类型、枚举类型命名
  2. 使用 UPPER_CASE 为常量和枚举值命名
  3. 使用 camelCase 为函数命名
  4. 使用 camelCase 为属性或本地变量命名
  5. 不要为私有属性名添加_前缀,如果某些属性你不想任何人访问它,可以添加$前缀
  6. 尽可能使用完整的单词拼写命名
  7. 函数名采用 动词动词+名词 的方式
  • start()
  • startLevel(level: number)
  1. 使用有意义的变量命名
  • 正确示范clickCallback tempValue
  • 错误示范 func a b

类型

  1. 不要使用 namespace 使用 ES Module
  2. 不要导出类型/函数,除非你要在不同的组件中共享它
  3. 在一个文件里,类型定义应该出现在顶部
  4. 尽量使用 **undefined**,而不是 null

组件

  • 1个文件对应一个逻辑组件 (比如:资源类型,资源加载器)
  • gen目录下的文件是自动生成的,不要手动改它。

一般假设

  1. 假设外部不需要修改的成员,需要添加 readonly 修饰
  2. 假设外部不需要访问的成员,应添加 privateprotected 修饰
  3. 假设不会变的对象,应声明为Readonly<T>

注释

  1. 为类、成员、函数,接口,枚举类型等使用 JSDoc风格的注释
  2. 不要在文件头添加签名

字符串

  1. 使用单引号'我是字符串'
  2. 使用模板拼接字符串而不是 + 运算符

普通方法

  • 不要使用for..in语句;而是使用for...of, forEach, 注意它们之间的区别。
  • 如果可能的话,使用forEachmapfilter代替循环。
  • 成员函数不要写成箭头函数,这会影响多态调用。

风格

  1. 使用 Tab 缩进而不是空格。
  2. 使用箭头函数代替匿名函数表达式。
  3. 只有需要的时候才把箭头函数的参数括起来。比如,

    (x) => x + x

    是错误的,正确的做法是

    1. x => x + x
    2. (x, y) => x + y
    3. <T>(x: T, y: T) => x === y
  4. 开始的{总是和其所属的语句在同一行
  5. 小括号里开始不要有空白
  6. 逗号,冒号,分号后要有一个空格。比如:

    1. for (var i = 0, n = str.length; i < 10; i++) { }
    2. if (x < 10) { }
    3. function f(x: number, y: string): void { }
  7. 每个变量声明语句只声明一个变量

    1. 正确示范 var x = 1; var y = 2;
    2. 错误示范 var x = 1, y = 2;
Theme Jasmine by Kent Liao