我有一个函数,它接受 2 个对象和一个键,该键是该对象的键之一。
示例:
obj1 = {name: 'ram', salary: '10000', age: 20};
obj2 = {name: 'tam', salary: '30000', age: 50};
key = 'name' // key can be either 'name', 'salary', or 'age'
所有键或 obj1 和 obj2 必须相同。 键必须是对象中的键之一。
我尝试构建这样的类型:
sortComparator?:<K extends Record<string, any>, T1 = K, T2 = K, Key = keyof K>(
row1: T1,
row2: T2,
accessor: Key
)
这不起作用,因为它允许 row1 和 row2 有不同的键。
为了实现 sortComparator 函数的类型安全并确保 row1 和 row2 具有相同的键,您可以使用 TypeScript 的泛型类型和映射类型。这是您的 sortComparator 的可能类型定义:
type SortComparator<T, K extends keyof T> = (row1: T, row2: T, accessor: K) => number;