首页作品博客笔记关于
← 返回

TypeScript 类型体操实战笔记

条件类型

条件类型是 TypeScript 类型编程的基础,语法类似三元表达式:

type IsString<T> = T extends string ? true : false;
type A = IsString<'hello'>; // true
type B = IsString<42>;      // false

映射类型

映射类型可以基于已有类型创建新类型:

type Readonly<T> = {
  readonly [P in keyof T]: T[P];
};

模板字面量类型

TypeScript 4.1 引入的模板字面量类型,让类型层面的字符串操作成为可能:

type EventName<T extends string> = `on${Capitalize<T>}`;
type ClickEvent = EventName<'click'>; // 'onClick'

实战:类型安全的事件系统

结合以上技巧,可以构建一个完全类型安全的事件系统,确保事件名和回调参数类型一一对应。