Я не уверен, что это ошибка в TS или что-то, что они считают неподдерживаемой функцией. MVE:
interface ColumnOptions<R> {
valueFormatter(params: R): string;
valueGetter(params: string): R;
}
const getColumn = function<R>(options: ColumnOptions<R>) {};
getColumn({
valueFormatter: params => 'hello',
valueGetter: params => ({
nr: 1,
str: 'hello',
}),
});
Это для определения столбца Ag-сетки, и цель состоит в том, чтобы вывести, что параметр valueFormatter
исходит из типа возврата valueGetter
. Параметр valueFormatter
(R) выводится как unknown
в приведенном выше случае, но если я явно наберу или удаляю параметр valueGetter
, например:
getColumn({
valueFormatter: params => 'hello',
valueGetter: () => ({
nr: 1,
str: 'hello',
}),
});
, это выводит R правильно , Это то, что заставляет меня предположить, что это может быть ошибка в TS, но, возможно, это просто не поддерживается, и я не хочу открывать проблему на GitHub, если это так. Протестировано с TS 3.8, 3.7, 3.5 и 3.0