# TypeScript 知识点

# 类型系统

  • 基本类型:如 number, string, boolean, any, null, undefined, void, never, object, array, tuple
  • 复杂类型:联合类型(Union Types)、交叉类型(Intersection Types)、类型别名(Type Aliases)、枚举(Enums)。
  • 字面量类型:如 'red' | 'green' | 'blue'

# 变量声明

  • 使用 letconst 而不是 var
  • 变量类型注解。

# 函数

  • 函数类型注解。
  • 可选参数、默认参数、剩余参数。
  • 箭头函数。

# 接口(Interfaces)

  • 定义对象的形状。
  • 可选属性、只读属性。
  • 接口的扩展和实现。

# 类(Classes)

  • 类的定义和实例化。
  • 继承、构造函数、修饰符(public, private, protected)。
  • 静态成员、抽象类。

# 模块(Modules)

  • 导入和导出(import, export)。
  • 命名空间(Namespaces)。

# 泛型(Generics)

  • 泛型函数、类和接口。
  • 泛型约束。

# 装饰器(Decorators)

  • 类装饰器、方法装饰器、属性装饰器。
  • 装饰器工厂。

# 高级类型

  • 映射类型(Mapped Types)。
  • 条件类型(Conditional Types)。
  • 索引类型(Indexed Access Types)。
  • 关键词类型(Keyof Types)。

# 类型推断(Type Inference)

- 如何利用TypeScript的类型推断机制。
- 类型推断的限制和注意事项。

# 类型保护(Type Guards)

- 用户定义的类型保护。
- `in` 操作符和 `instanceof` 操作符作为类型保护。

# 工具类型(Utility Types)

- 内置的工具类型如 `Partial<T>`, `Readonly<T>`, `Record<K, T>`, `Pick<T, K>` 等。
- 自定义工具类型。

# 性能优化

- 避免不必要的类型检查和转换。
- 使用 `const` 和 `readonly` 提高性能。
上次更新: 11/6/2024, 4:10:52 PM