const user = {
name: 'abl',
age: 24,
sex: '男'
}
type Compare<T, U> = (a: T, b: U) => boolean;
function findKey<T, U extends T[keyof T]>(
record: T,
value: U,
compare: Compare<T[keyof T], U> = (a, b) => a === b
): keyof T | undefined {
return (Object.keys(record) as Array<keyof T>).find(k =>
compare(record[k], value)
);
}
findKey(user, 24); // age
typescript 对象根据value获取key
于 2021-06-18 10:01:21 首次发布