采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好! keyof会获取类中的public属性跟原型上方法集合的联合类型,如果我只想单独获取到原型上方法的联合类型或者是属性的联合类型,需要怎么写呢?
// 1.准备一个类
class Customer {
custname!: string
age!: number
buy() {
}
eat() {
// 2 实现
//TS 原型上都是类上定义的方法,屏蔽了单独使用原型定义属性和方法
// TS 属性都属于实例
// 2.1. 获取属性名组成的联合类型
type TypPropNameUnion<T> = {
[F in keyof T]: T[F] extends Function ? never : F
}[keyof T]
type PropName = TypPropNameUnion<Customer>
// 2.2 TS 原型上都是类上定义的方法名组成的联合类型
type TypMethodNameUnion<T> = {
[F in keyof T]: T[F] extends Function ? F : never
type MethodName = TypMethodNameUnion<Customer>
老师,请问后面加了这个[keyof T]是什么意思?跟前面的怎么连着理解呢?
[keyof T] 获取的是——冒号:后面 T[F] extends Function ? never : F 执行的结果组成的联合类型,明白?
登录后可查看更多问答,登录/注册
轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈
1.2k 15
924 12
1.1k 11
962 11
724 10