уже чем у f2 из-за агрумента и в r1 будет true
Но на деле в r1 будет false. Потому что, чтобы f1 был подтипов f2 типы их аргументов должны быть контрвариативны.
Но почему это именно так работает я хз
https://www.typescriptlang.org/play?#code/C4TwDgpgBAZgjFAvFKAKAhgJwOYC4oDkwEAzsAQJRIB8UZmAlgHbYDcAUKJLAExIoYc+es2xVEtESw6dw0TAmTwoEAB7EmAExK8oAfijBMAV2j4Y6ADYkIrIA
https://t.me/ts_cool/96970
Ну это то же самое, что и у меня. Мне просто не понятно почему в аргументах именно контрварианты должны быть
F2 экстендит тип F1 - это значит, что вместо F1 можно передать F2, но не наоборот
Почему в аргументах контрварианты, а не коварианты?
Аргументы функций контрвариантны потому что логика действительно такая. В жс очень распространенна передача функций высшего порядка в аргумент, где как раз типы будут гораздо чаще контрвариантны
https://sammart.in/post/2021-07-25-typescript-function-type-parameter-contravariance/#why-are-function-type-parameters-contravariant
Обсуждают сегодня