оно не работает на русском? На англ пытался, не хватает языка
мне кажется вот на таком примере понятней function f<T extends { field: string }>(): T { return { field: 'str' }; } f<{ field: string, newField: number }>().newField // oops
да просто потому, что из функции всегда возвращается по факту двойка. 2 - это не просто number, это конкретный тип, равный числу 2 (т.е. одна цифра из множества всех чисел number) если передать в дженерик функции при вызове другое конкретное число, например, fn<3>, то получится, что T - это 3, и return 2 по факту станет ложью на это ТС и ругается
f<10>()
Обсуждают сегодня