说已经定义了一个类型:
export type Item = {
type: 'text',
content: string
} | {
type: 'link',
url: string
}
是否可以从类型link
中提取Item
部分?我的意思是,是否可以定义类型ExtractTypeFrom
:
type LinkItem = ExtractType<Item, 'type', 'link'>
LinkItem
将是:
{
type: 'link',
url: string
}
答案 0 :(得分:2)
是的,您可能非常接近,可以使用预定义的Extract
条件类型。您可能需要传入一个类型作为第二个参数,该类型可以是您要寻找的类型的基本类型:
type LinkItem = Extract<Item, { type: 'link' }> // will be { type: "link"; url: string; }