Имя функции «недоступно» внутри самой функции - PullRequest
0 голосов
/ 26 мая 2020

Почему имя функции «недоступно» в консоли отладки VS Code, хотя я мог бы использовать его в назначении?

enter image description here

1 Ответ

1 голос
/ 26 мая 2020

Вам необходимо узнать больше об void операторе .

Оператор void оценивает данное выражение, а затем возвращает undefined.

Итак, в вашем случае это означает:

  • Возьмите выражение функции function foo() { ... }
  • Оцените его и ничего не верните

void function test() {
  console.log('boo!');
  // expected output: "boo!"
}();

try {
  test();
} catch (e) {
  console.log(e);
  // expected output: ReferenceError: test is not defined
}

Если вы хотите, чтобы это работало, отбросьте void:

function foo() {
  const x = foo;
}

Хотя, я предполагаю, что вы хотели указать тип возврата для функции. Если это так, вы не можете указать тип возвращаемого значения в JavaScript - это язык программирования с динамической c типизацией.

Хотя с TypeScript вы можете написать:

function foo(): void {
  const x = foo;
}
...