Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 860 Bytes

LookUp.md

File metadata and controls

36 lines (25 loc) · 860 Bytes
标题 标签
LookUp(根据属性查找接口类型) extends(继承)

根据属性查找接口类型。

  • T 继承{type: U },则返回 T,否则返回 never。

代码如下:

type LookUp<T, U> = T extends { type: U } ? T : never;

使用方式:

interface LookUpCat {
  type: 'cat';
  breeds: 'Abyssinian' | 'Shorthair' | 'Curl' | 'Bengal';
}

interface LookUpDog {
  type: 'dog';
  breeds: 'Hound' | 'Brittany' | 'Bulldog' | 'Boxer';
  color: 'brown' | 'white' | 'black';
}

type MyLookUpDog = LookUp<LookUpCat | LookUpDog, 'dog'>; // `LookUpDog`

应用场景

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