HEKTOR!: Meine liebe Not mit destructuring

Beitrag lesen

Hallo,

Habe so meine liebe Not mit destructuring...

Wollte die Übergabe von Argumenten als Objekt reproduzieren analog zu

// ORIGINALVERSION:
let data = (args) => {
	let { a1, a2, a3} = args;
	if (a1) /*...*/
	// etc.
};
data({a1: "Ein Wert"});

Diese Version führte aber zu der Herausforderung, oft nicht zu wissen, welche Argumente in die Funktion eigentlich übergebbar sind, worauf ich selbige bei Funktionsdeklaration sozusagen bereits aufführe:

// ERSTE ÜBERARBEITUNG:
let data = ({ArgName1, ArgName2, ArgName3}) => {
	let a1 = ArgName1;
	let a2 = ArgName2;
	let a3 = ArgName3;
	if (a1) /* ... */
	// etc.
};

Die liebe Not:

Lassen sich a1, a2, a3 in der Überarbeitung ebenso elegant als Einzeiler formulieren wie in der Originalversion?

let a1, a2, a3 = {ArgName1, ArgName2, ArgName3};

führt leider dazu, dass a1 und a2 undefined sind und sämtliche Argumente an a3 übergeben werden....

Danke für euren Input!

Hektor.