Typescript
  • Introduction
  • 快速上手
    • 5分钟了解TypeScript
    • ASP.NET Core
    • ASP.NET 4
    • Gulp
    • Knockout.js
    • React与webpack
    • React
    • Angular 2
    • 从JavaScript迁移到TypeScript
  • 手册
    • 基础类型
    • 变量声明
    • 接口
    • 类
    • 函数
    • 泛型
    • 枚举
    • 类型推论
    • 类型兼容性
    • 高级类型
    • Symbols
    • Iterators 和 Generators
    • 模块
    • 命名空间
    • 命名空间和模块
    • 模块解析
    • 声明合并
    • JSX
    • Decorators
    • 混入
    • 三斜线指令
    • JavaScript文件里的类型检查
    • 实用工具类型
  • 如何书写声明文件
    • 介绍
    • 库结构
    • 举例
    • 最佳实践
    • 深入
    • 模板
    • 发布
    • 使用
  • 工程配置
    • tsconfig.json
    • 工程引用
    • NPM包的类型
    • 编译选项
    • 配置 Watch
    • 在MSBuild里使用编译选项
    • 与其它构建工具整合
    • 使用TypeScript的每日构建版本
  • Wiki
    • TypeScript里的this
    • 编码规范
    • 常见编译错误
    • 支持TypeScript的编辑器
    • 结合ASP.NET v5使用TypeScript
    • 架构概述
    • 发展路线图
  • 新增功能
    • TypeScript 3.9
    • TypeScript 3.8
    • TypeScript 3.7
    • TypeScript 3.6
    • TypeScript 3.5
    • TypeScript 3.4
    • TypeScript 3.3
    • TypeScript 3.2
    • TypeScript 3.1
    • TypeScript 3.0
    • TypeScript 2.9
    • TypeScript 2.8
    • TypeScript 2.7
    • TypeScript 2.6
    • TypeScript 2.5
    • TypeScript 2.4
    • TypeScript 2.3
    • TypeScript 2.2
    • TypeScript 2.1
    • TypeScript 2.0
    • TypeScript 1.8
    • TypeScript 1.7
    • TypeScript 1.6
    • TypeScript 1.5
    • TypeScript 1.4
    • TypeScript 1.3
    • TypeScript 1.1
  • Breaking Changes
    • TypeScript 3.6
    • TypeScript 3.5
    • TypeScript 3.4
    • TypeScript 3.2
    • TypeScript 3.1
    • TypeScript 3.0
    • TypeScript 2.9
    • TypeScript 2.8
    • TypeScript 2.7
    • TypeScript 2.6
    • TypeScript 2.4
    • TypeScript 2.3
    • TypeScript 2.2
    • TypeScript 2.1
    • TypeScript 2.0
    • TypeScript 1.8
    • TypeScript 1.7
    • TypeScript 1.6
    • TypeScript 1.5
    • TypeScript 1.4
Powered by GitBook
On this page
  • 命名
  • 组件
  • 类型
  • null 和 undefined:
  • 一般假设
  • 类
  • 标记
  • 注释
  • 字符串
  • 错误提示信息
  • 错误提示信息代码
  • 普通方法
  • 风格

Was this helpful?

  1. Wiki

编码规范

这个编码规范是给TypeScript开发团队在开发TypeScript时使用的。 对于使用TypeScript的普通用户来说不一定适用,但是可以做为一个参考。

命名

  1. 使用PascalCase为类型命名。

  2. 不要使用I做为接口名前缀。

  3. 使用PascalCase为枚举值命名。

  4. 使用camelCase为函数命名。

  5. 使用camelCase为属性或本地变量命名。

  6. 不要为私有属性名添加_前缀。

  7. 尽可能使用完整的单词拼写命名。

组件

  1. 1个文件对应一个逻辑组件 (比如:解析器,检查器)。

  2. 不要添加新的文件。 :)

  3. .generated.*后缀的文件是自动生成的,不要手动改它。

类型

  1. 不要导出类型/函数,除非你要在不同的组件中共享它。

  2. 不要在全局命名空间内定义类型/值。

  3. 共享的类型应该在types.ts里定义。

  4. 在一个文件里,类型定义应该出现在顶部。

null 和 undefined:

  1. 使用 undefined,不要使用 null。

一般假设

  1. 假设像Nodes,Symbols等这样的对象在定义它的组件外部是不可改变的。不要去改变它们。

  2. 假设数组是不能改变的。

类

  1. 为了保持一致,在核心编译链中不要使用类,使用函数闭包代替。

标记

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

注释

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

字符串

  1. 使用双引号""

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

错误提示信息

  1. 在句子结尾使用.。

  2. 对不确定的实体使用不定冠词。

  3. 确切的实体应该使用名字(变量名,类型名等)

  4. 当创建一条新的规则时,主题应该使用单数形式(比如:An external module cannot...而不是External modules cannot)。

  5. 使用现在时态。

错误提示信息代码

提示信息被划分类成了一般的区间。如果要新加一个提示信息,在上条代码上加1做为新的代码。

  • 1000 语法信息

  • 2000 语言信息

  • 4000 声明生成信息

  • 5000 编译器选项信息

  • 6000 命令行编译器信息

  • 7000 noImplicitAny信息

普通方法

由于种种原因,我们避免使用一些方法,而使用我们自己定义的。

  1. 不要使用for..in语句;而是使用ts.forEach,ts.forEachKey和ts.forEachValue。注意它们之间的区别。

  2. 如果可能的话,尝试使用ts.forEach,ts.map和ts.filter代替循环。

风格

  1. 使用arrow函数代替匿名函数表达式。

  2. 只要需要的时候才把arrow函数的参数括起来。 比如,(x) => x + x是错误的,下面是正确的做法:

    1. x => x + x

    2. (x,y) => x + y

    3. <T>(x: T, y: T) => x === y

  3. 总是使用{}把循环体和条件语句括起来。

  4. 开始的{总是在同一行。

  5. 小括号里开始不要有空白. 逗号,冒号,分号后要有一个空格。比如:

    1. for (var i = 0, n = str.length; i < 10; i++) { }

    2. if (x < 10) { }

    3. function f(x: number, y: string): void { }

  6. 每个变量声明语句只声明一个变量 (比如 使用 var x = 1; var y = 2; 而不是 var x = 1, y = 2;)。

  7. else要在结束的}后另起一行。

PreviousTypeScript里的thisNext常见编译错误

Last updated 4 years ago

Was this helpful?

不使用ECMAScript 5函数;而是使用这里的。

core.ts