D = undefined>(object: T, property: P, defaults?: D): D;
const r = func({ a: ‘a’ }, ‘b’, 1) // возвращает тип 1, а не number, как ожидается
При этом я не могу указать typeof D в возврате функции… есть какие то способы вернуть, как тип, не само значение defaults, а его тип?
У вас возвращается тип defaults, просто 1 привелся к литеральному типу, попробуйте вот так const def: number = 1 const r = func({ a: 'a' }, 'b', def)
В общем определение ф-ции немного косячит, просто D должен фигурировать не только в defaults, а ещё где нибудь (или быть связанным с другими аргументами), чтоб он был общим типом (и скорей всего реализация это и подразумевает).
Обсуждают сегодня