Christian Kruse: Meine liebe Not mit destructuring

Beitrag lesen

Hallo Rolf,

ich glaube, JavaScript ist für mich soeben eine Fremdsprache geworden. Destructuring beim Parameterempfang - argh!

😀

Ich mag es. Es erlaubt deklarativeren und damit besser lesbaren Code und erlaubt es IDEs bessere auto completion zu machen. Wenn ich z.B. diese Funktion definiere:

function foo({start, stop}) {}

dann kann z.B. VS Code beim Aufruf die Eigenschaften start und stop automatisch anbieten.

Natürlich könnte man fragen „aber warum nimmst du nicht einfach zwei Argumente?“ – nun, das ist nur ein stark vereinfachtes Beispiel. Die Argumente könnten mehr werden so dass ein Objekt lesbarer ist, oder ich verwende ein Framework wie React, bei dem die Parameter aus einer technischen Notwendigkeit heraus immer als Objekt übergeben werden müssen. Es gibt viele Gründe, warum ein Objekt als Parameter Sinn machen kann.

Edit: sehr praktisch auch zusammen mit dem spread operator:

const {start, stop, ...rest} = props;

Ergibt eine Variable start mit dem Wert von props.start, eine Variable stop mit dem Wert von props.stop und eine Variable rest mit einem neuen Objekt, dass alle restlichen Eigenschaften von props enthält.

Edit 2: das geht übrigens auch mit Arrays, so kann man Tupel nachbilden:

const [elem1, elem2, ...rest] = funReturningATuple();

Und jetzt… jetzt gehe ich erstmal eine Runde Fahrrad fahren 😀

Freundliche Grüße,
Christian Kruse