老师,对于泛型约束,这里不太理解

来源:7-6 在 Vue3 源码深刻掌握泛型约束

Lanny_Chung

2023-08-25

type ObjectType = {name: string; age: number};
type ObjectKeyType<T extends ObjectType, K> = K extends keyof T ? K : never;
type TestObjKeyType01 = ObjectKeyType<ObjectType, "name">; // name
type TestObjKeyType02 = ObjectKeyType<ObjectType, "age">; // age
type TestObjKeyType03 = ObjectKeyType<ObjectType, "name" | "age" | "fasdf">;// name | age

这里01是 name ,02 是age,03为什么不是name | age | never,而是 name | age呢

写回答

1回答

keviny79

2023-08-25

当其他类型和 never 类型 联合时,会忽略 never 类型    例如 :type K=string|never   等同于 type K=string



0
1
Lanny_Chung
好的,谢谢老师
2023-08-25
共1条回复

TypeScript 从入门到深度掌握,晋级TS高手

200+技术点,22 场景应用,Vue3 源码 TS 用法剖析

441 学习 · 53 问题

查看课程