Давайте предположим упрощенный пример (я знаю, что в данном конкретном упрощении перегрузка не нужна, но она упрощена)
РЕДАКТИРОВАТЬ: первый приведенный пример был недостаточен для понимания проблемы, вот обновленный:
function fn <T>( // Overload signature is not compatible with function implementation.ts(2394)
fn: (item: T) => T,
): (idx: number) => (src: T[]) => T[]
function fn <T>(
fn: (item: T) => T,
idx: number,
): (src: T[]) => T[]
function fn(fn: (x: any) => any, idx?: number) {
}
Как в этом случае вы бы квалифицировали тип Return в реализации.
У меня есть жалоба компилятора на первое определение с ts(2394)
, и я не получаючто я делаю не так.
Заранее спасибо Seb