Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 943 Bytes

Pick.md

File metadata and controls

34 lines (24 loc) · 943 Bytes
标题 标签
Pick(提取接口类型) in,keyof(是否在类型中,属于类型的属性)

提取接口类型。

  • 使用keyof获取类型T的属性名,组合成联合类型(类似 string | boolean),然后让K继承。
  • 使用in操作符判断属性类型是否在K中,如果是就返回T[K],也就是属性值。

代码如下:

type Pick<T, K extends keyof T> = {
    [R in K]: T[K]
}

使用方式:

interface PickTodo {
    title: string
    description: string
    completed: boolean
}

type PickTodoPreview = Pick<PickTodo, 'title' | 'completed'>; // { title:string;completed: boolean; }

应用场景

如下所示,鼠标悬浮到对应的类型变量可以查看类型。