Ответ 1
Если вы не используете блок ({}
) как тело функции arrow, тело должно быть выражение:
ArrowFunction:
ArrowParameters[no LineTerminator here] => ConciseBody
ConciseBody:
[lookahead ≠ { ] AssignmentExpression
{ FunctionBody }
Но throw
является statement, а не выражением.
В теории
() => throw x;
эквивалентно
() => { return throw x; }
который также недействителен.