0
点赞
收藏
分享

微信扫一扫

TypeScript-infer关键字

niboac 2022-05-25 阅读 60

infer 关键字


  • 条件类型提供了一个​​infer​​ 关键字, 可以让我们在条件类型中定义新的类型


博主假设有这么一个需求: 定义一个类型, 如果传入的是数组, 就返回数组的元素类型, 如果传入的是普通类型, 则直接返回这个类型。

传入的是数组:

type MyType<T> = T extends any[] ? T[number] : T;
type res = MyType<string[]>;

传入的是普通类型:

type MyType<T> = T extends any[] ? T[number] : T;
type res = MyType<number>;

除了如上的实现方式以外,还可以利用 ​​infer​​ 关键字来实现。

传入的是数组:

type MyType<T> = T extends Array<infer U> ? U : T;
type res = MyType<string[]>;

传入的是普通类型:

type MyType<T> = T extends Array<infer U> ? U : T;
type res = MyType<number>;




举报

相关推荐

0 条评论