дописать as T?
А без этого никак?
у вас T никак не высчитывается из аргументов, а сам по себе T за счет extends может содержать еще много чего кроме Obj. Поэтому возвращая просто увеличенный obj на a мы вернем максимум Obj, а не Obj + что-то, находящееся в T
какая цель функции? словами можно?) она должна взять что-то без {a: number} и вернуть с ней?
Есть функция, возвращает тип Т (некий объект). Принимает параметром объект Omit<T, ‘какой то ключ’> т.к объект без одного ключа . Внутри функция добавляет этот ключ
Есть предложение принимать T не как этот весь тип, а как omitted. Типа такого: const someFn2 = <T extends OmitObj = Obj>(obj: T): T & {a: number}=> { const obj_ = Object.assign(obj, {a: 12}) return obj_; } Так типизация работает норм. Пойдет?
Мб, спасибо, позже проверю
Меня одного коробит ассайн вместо спредов?..
нет 😄 я просто не менял исходный код
В данном случае только один уровень вложенности поэтому читается просто, а если глубже надо - тогда да, только спреды)
Обсуждают сегодня