Синтаксис, который вы используете в функции стрелки, подразумевает, что результат greet
не возвращается функцией стрелки, чтобы вернуть его, вам нужно будет использовать return
function greeter(agreet: () => string) {
console.log(agreet); // returns ƒ () { greet(); }
console.log(agreet()); // returns undefined
console.log(greet()); // returns "Hello"
return agreet();
}
function greet() {
return "Hello";
}
greeter(() => { return greet() });
Или нетиспользуйте {}
:
greeter(() => greet());
Или передайте функцию напрямую:
greeter(greet);
Примечание Тип, добавленный в agreet
, предотвратит ошибкуво-первых, поскольку вы получили бы ошибку, что переданная функция стрелки вернула void
вместо string