keyof 是 TypeScript 中的一个关键字,它用于获取一个类型的所有键(属性名)的联合类型。
用法:
当你使用 keyof 时,它返回给定类型的所有属性名的联合类型。
例子:
type Person = {
name: string;
age: number;
};
type PersonKeys = keyof Person;
// PersonKeys 类型为 "name" | "age"
一个比较实用的用法:
如果我们需要获取对象中所有的key,并且把这些key的其中一部分放入数组中遍历验证,但是又怕数组中的key字符串写错,我们可以配合keyof这样写:
// 问诊记录
type Consult = {
id: string
type: ConsultType
illnessType: 0 | 1
depId: string
illnessDesc: string
illnessTime: IllnessTime
consultFlag: 0 | 1
pictures: Image[]
patientId: string
couponId: string
}
type PartialConsult = Partial<Consult>
type Keys = keyof PartialConsult
const validKeys: Keys[] = [ //这样定义数组编辑器就会有提示
'type',
'illnessType',
'depId',
'illnessDesc',
'illnessTime',
'consultFlag',
'patientId'
]
/*store定义部分忽略*/
//校验
const valid = validKeys.every((key) => store.consult[key] !== undefined)