type NumericPropsOf<T> = {
[K in keyof T]: T[K] extends number ? K : never;
}[keyof T];
function findRow<T extends Record<string, any>>(
table: T[], value: number, field: NumericPropsOf<T>
): T | undefined {
for (let i = 0; i < table.length; i++) {
if (Math.abs(table[i][field] - value) < 0.01) return table[i];
}
}
findRow(
[
{ a: 1, b: 'first' },
{ a: 2, b: 'second' },
{ a: 't3', b: 'third' },
],
2.005,
'a'
); // Сделать так что бы выдавалась ошибка т.к. последний объект в списке имеет prop 'a' не number.
Возможно ли?