泛型优于联合类型

巧用typeof推导优于自定义类型

1
2
3
4
5
6
7
8
9
10
// 声明模块的初始state
const userInitState = {
name: '',
workid: '',
avator: '',
department: '',
}

// 根据初始state推导出当前模块的数据结构
export type IUserStateMode = typeof userInitState // 导出的数据类型可以在其他地方使用
内置函数 用途 例子
Partial 类型T的所有子集(每个属性都可选) Partial<IUserStateMode>
Readony 返回和T一样的类型,但所有属性都是只读 Readony<IUserStateMode>
Required 返回和T一样的类型,每个属性都是必须的 Required<IUserStateMode>
Pick<T, K extends keyof T> 从类型T中挑选的部分属性K Pick<IUserStateMode, 'name' 'workid' 'avator'>
Exclude<T, U extends keyof T> 从类型T中移除部分属性U Exclude<IUserStateMode, 'name' 'department'>
NonNullable 从属性T中移除null和undefined NonNullable<IUserStateMode>
ReturnType 返回函数类型T的返回值类型 ReturnType<IUserStateMode>
Record<K, T> 生产一个属性为K,类型为T的类型集合 Record<keyof IUserStateMode, string>
Omit<T, K> 忽略T中的K属性 Omit<IUserStateMode, 'name'>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!