Typescript 学习笔记(一)
基础知识
- enum 枚举
enum Color {Red = 1, Green, Blue}
- type, interface
- 联合类型 |
- 交叉类型 &
- typeof
获取一个变量声明或对象的类型 - keyof
获取一个对象中的所有 key 值interface Person { name: string; age: number; } type K1 = keyof Person; // "name" | "age"
- in
遍历枚举类型type keys = 'a' | 'b' | 'c'; type obj = { [p in keys]: any } // {a: any, b: any, c: any}
- extends
继承interface a { name: string; age: number } interface b extends a { sex: string; }
- Partial
Partial 将某个类型的属性全都变为可选项 - Required
将某个类型的属性全都变为必选项 - Readonly
将某个类型的属性全都变为只读,不能被重新赋值 - Record
Record<K extends keyof any, T> 将 K 中的所有属性的值转为 T 类型interface PageInfo { title: string; } type Page = 'home' | 'about' | 'contact'; const x: Record<Page, PageInfo> = { home: { title: 't1' }, about: { title: 't1' }, contact: { title: 't1' } }
- Exclude
Exclude<T, U> 将某个类型中属于另一个的类型移除type T = Exclude<'a' | 'b' | 'c', 'a'>; // 'b' | 'c'
- Extract
Extract<T, U> 从 T 中提取 Utype T = Extract<'a' | 'b', 'a' | 'f'>; // 'a'