Sto solo cercando un motivo per spiegare il motivo per cui questo non è valido:Perché `throw` non è valido in una funzione freccia ES6?
() => throw 42;
so che posso andare in giro tramite:
() => {throw 42};
Sto solo cercando un motivo per spiegare il motivo per cui questo non è valido:Perché `throw` non è valido in una funzione freccia ES6?
() => throw 42;
so che posso andare in giro tramite:
() => {throw 42};
Se non si utilizza un blocco ({}
) come corpo di un arrow function, il corpo deve essere un expression:
ArrowFunction:
ArrowParameters[no LineTerminator here] => ConciseBody
ConciseBody:
[lookahead ≠ { ] AssignmentExpression
{ FunctionBody }
Ma throw
è un statement, non è un'espressione.
In teoria
() => throw x;
è equivalente a
() => { return throw x; }
che non sarebbe valida sia.
Non si può return throw
questo è effettivamente ciò che si sta cercando di fare:
function(){
return throw 42;
}