Кажется, что lodash/sortBy
неправильно определяет тип 2-го аргумента функции iteratee (компаратор). Это относится как к именованному импорту, так и к импорте по умолчанию
В то же время, stable
помощник сортировки обнаруживает его правильно.
(песочница: https://codesandbox.io/embed/priceless-haslett-be2h6)
Вопрос: Могу я что-то сделать неправильно или есть проблема с _.sortBy с TS?
import _ from "lodash";
import sortBy from "lodash/sortBy";
import stable from "stable";
export interface ITableRow {
accountId: number;
companyName: string;
}
const rows: ITableRow[] = [];
// TS error
const sortedList1 = sortBy<ITableRow>(
rows,
(a, b) => a.accountId - b.accountId
);
// TS error
const sortedList2 = _.sortBy<ITableRow>(
rows,
(a, b) => a.accountId - b.accountId
);
// ok
const sortedList3 = stable<ITableRow>(
rows,
(a, b) => a.accountId - b.accountId
);