Помеченные функции стрелок - PullRequest
0 голосов
/ 30 апреля 2020

В MDN-документах для меток Javascript говорится следующее:

Начиная с ECMAScript 2015, декларированные объявления функций теперь стандартизированы для нестрогого кода в приложении по веб-совместимости спецификации.

L: function F() {}

Однако, похоже, я не могу обозначить функцию стрелки, и мне было интересно, почему это так. Мой упрощенный код приведен ниже:

horizWin: () => { ... }
vertWin: () => { ... }
[horizWin, vertWin].find(element => element)

Я нахожусь внутри Create React App и использую ESLint (если это актуально). Мои ошибки:

  1. Expected an assignment or function call and instead saw an expression no-unused-expressions Это ошибка для обозначения моей функции, которую я не понимаю.

  2. 'horizWin' is not defined и 'vertWin' is not defined. Ясно, что я не могу назвать метку таким образом, но я не уверен, что делаю неправильно (предположим, что метка функции действительна).

1 Ответ

2 голосов
/ 30 апреля 2020

Метка не является переменной. Это не объект в коде, на который вы можете ссылаться. Это не то, на что вы вообще можете ссылаться вне операторов break и continue. В MDN-документах об этом совершенно ясно говорится.

Согласно этому связанному вопросу помеченные функции даже не могут использоваться ни для чего. Они просто для обратной совместимости со старым, плохим кодом.

Похоже, вы пытаетесь присвоить функции-стрелки переменной. Этикетки не имеют к этому никакого отношения. Просто используйте объявления переменных:

let horizWin = () => { ... }
let vertWin = () => { ... }
[horizWin, vertWin].find(element => element)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...