1. 基础类型
    1. 布尔:boolean
    2. 数字:number
    3. 字符串:string
    4. 数组:T[]、Array<T>
    5. 元组:[T1,T2]
    6. 任意值:any
      1. 枚举:enum
    7. 空值:void
    8. Null
    9. Undefined
    10. Never
  2. 变量声明
    1. var
    2. let
    3. const
    4. 解构
  3. 泛型
    1. 泛型变量
    2. 泛型类型
    3. 泛型类
    4. 泛型约束
  4. 枚举
    1. enum
  5. Symbols
    1. 不可改变且唯一的
    2. 通过Symbol构造函数创建的
  6. 命名空间
    1. 位于全局命名空间下的一个普通的带有名字的JavaScript对象
  7. 接口
    1. 可选属性(?)
      1. interface SquareConfig { color?: string; width?: number; }
    2. 只读属性(readonly)
      1. interface Point { readonly x: number; readonly y: number; }
    1. 继承
    2. get/set
    3. 静态属性
    4. 抽象类
    5. 修饰符
      1. public(默认)
      2. private
      3. protected
      4. readonly
  8. 函数
    1. 函数类型
    2. 推断类型
    3. 可选参数(?)
    4. 默认参数(=)
    5. 剩余参数(...)
    6. 重载
    7. lambda表达式
      1. 在函数创建的时候就指定了‘this’值,而不是在函数调用的时候。
  9. Main Topic 14
  10. 高级类型
    1. 类型保护
    2. 交叉类型(&)
    3. 类型别名
    4. 联合类型(使用|分隔)
      1. function padLeft(value: string, padding: string | number) { // ... }
  11. 迭代
    1. 当生成目标为ES5或ES3,迭代器只允许在Array类型上使用
    2. for..of
      1. 对象的键对应的值
    3. for..in
      1. 对象的 键 的列表
  12. 模块
    1. export
    2. import
    3. export =
    4. import = require()
    5. 默认导出
      1. export default
  13. Main Topic 13
  14. 自由主题