Может ли кто-нибудь объяснить мне, почему код, который я написал ниже, не различает guish следующих двух типов:
[1] () => void
(тип функции, который не требует аргументы ничего не возвращают)
[2] () => () => void
(функция, которая не принимает аргументов и возвращает функцию, которая не принимает аргументов и ничего не возвращает).
Например:
const function2 = (): () => void => {
return (): void => {};
};
export const function1 = (arg: () => void): void => {
console.log(arg);
};
function1(function2); // Should NOT pass type checker as the return type is not void
function1(function2()); // Should pass type checker
Или, может, кто-нибудь объяснит мне, как заставить function1(function2)
выдать ошибку компиляции Typescript.