Я использовал type predicates, но вроде это говно-код))
const isFunction = (value: unknown): value is (...args: never) => unknown => { return typeof value === "function" }
Почему вы использовали unknown? И еще почему в type predicate вы приписали args функции как never?
> Почему вы использовали unknown? потому что это самый широкий тип, чтоб можно было любое значение передать > почему в type predicate вы приписали args функции как never? потому что это самый узкий тип, чтоб было совместимо с любой другой функцией
С unkown понятно, но как never будучи "самым узким типом", может быть совместим с любом другой функцией?
Типы функци по аргументам контрвариантны, а по возвращаемым значениям ковариантны
Вот можешь почитать https://dmitripavlutin.com/typescript-covariance-contravariance/
Обсуждают сегодня