typescript.md 2.6 KB

typescript 编写规范

::: details 目录 [[toc]] :::

命名

  1. 使用 PascalCase 为类型命名。
  2. 不要使用I做为接口名前缀。
  3. 使用 PascalCase 为枚举值命名。
  4. 使用 camelCase 为函数命名。
  5. 使用 camelCase 为属性或本地变量命名。
  6. 不要为私有属性名添加_前缀。
  7. 尽可能使用完整的单词拼写命名。

组件

  1. 1个文件对应一个逻辑组件 (比如:解析器,检查器)。
  2. .generated.* 后缀的文件是自动生成的,不要手动改它。
  3. 不要导出类型/函数,除非你要在不同的组件中共享它。
  4. 不要在全局命名空间内定义类型/值。
  5. 共享的类型应该在 types.ts 里定义。
  6. 在一个文件里,类型定义应该出现在顶部。

null和undefined

使用undefined,不要使用null

标记

一个类型中有超过2个布尔属性时,把它变成一个标记。

注释

为函数,接口,枚举类型和类使用JSDoc风格的注释。

字符串

  1. 使用双引号""
  2. 所有要展示给用户看的信息字符串都要做好本地化工作(在 diagnosticMessages.json 中创建新的实体)。

错误提示信息

  1. 在句子结尾使用。
  2. 对不确定的实体使用不定冠词。
  3. 确切的实体应该使用名字(变量名,类型名等)
  4. 当创建一条新的规则时,主题应该使用单数形式(比如:An external module cannot...而不是External modules cannot)。
  5. 使用现在时态。
  6. 错误提示信息代码
  7. 提示信息被划分类成了一般的区间。如果要新加一个提示信息,在上条代码上加1做为新的代码。
提示 意义
1000 语法信息
2000 语言信息
4000 声明生成信息
5000 编译器选项信息
6000 命令行编译器信息
7000 noImplicitAny信息

风格

  1. 使用 arrow 函数代替匿名函数表达式。
  2. 只要需要的时候才把arrow函数的参数括起来。
  3. 总是使用{}把循环体和条件语句括起来。
  4. 开始的{总是在同一行。
  5. 小括号里开始不要有空白。
  6. 逗号,冒号,分号后要有一个空格。
  7. 每个变量声明语句只声明一个变量 (比如 使用var x = 1; var y = 2;而不是var x = 1, y = 2;)。
  8. else 要在结束的}后另起一行。