在线时间:8:00-16:00
132-9538-2358
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
条件类型提供了一个 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>;
评论
请发表评论