Tach!
export default (func, wait, scope) => { return function() { const args = arguments; }; };
Zusammengekürzt auf das wesentliche in Bezug auf die beiden Meldungen.
- 13:39 error Unexpected block statement surrounding arrow body; move the returned value immediately after the
=>
arrow-body-style
Ich nehme an, dass damit der überflüssige Block mit lediglich dem Return-Statement drin gemeint ist.
() => 42
ist eine Schreibweise, bei der eine Funktion definiert wird, die 42 zurückgibt. Solange sich der Funktionskörper als Einzeiler schreiben lässt, braucht man nicht die Langform () => { return 42; }
.
In deinem Fall geht also auch (...) => function () {...}
, denn dabei wird die Funktion auch erzeugt und direkt zurückgegeben. Das lässt sich sogar noch weiter eindampfen, aber ich finde, dann leidet die Lesbarkeit zu stark: (...) => () => {...}
- 16:18 error Use the rest parameters instead of 'arguments' prefer-rest-params
Rest Parameters ist eine neuere Ergänzung in Javascript. Damit gibt man an, dass beliebig viele Parameter angegeben werden können und dass diese in einem Array abgelegt werden sollen. Der Unterschied zu arguments ist, dass man vorher auch noch andere Parameter angeben kann, die dann aber nicht im Rest-Array auftauchen. Man muss diese festen Parameter also nicht aus arguments rauskürzen, um nur den Rest zu haben.
function foo(x, y, ...z) {
console.log(x, y);
for (let a of z) {
console.log(a);
}
// alternative Verwendung
z.forEach(a => console.log(a));
}
Die drei Punkte ...
vor dem z sind in diesem Fall Syntax und kein Auslassungszeichen. Wenn du die Funktion mit foo(1,2,3,4,5)
aufrufst, bekommst du neben dem 1 2
für x und y zweimal die 3, 4 und 5 ausgegeben. z ist also ein Array mit den restlichen Parametern, die nicht in x und y gelandet sind.
Mit anderen Worten, deine innere Funktion soll so aussehen:
return function(...args) {
// const args = arguments; kann gelöscht werden
};
dedlfix.