JavaScript: Flow-Entwickler überarbeiten React-Modell

Nach dem Update auf die nun verfügbare Version 0.53 des von Facebook entwickelten statischen Typecheckers für JavaScript empfiehlt sich ein Upgrade der Codebase, da sich einiges getan hat.

vorlesen Druckansicht
JavaScript: Flow-Entwickler überarbeiten React-Modell
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Das Team hinter Facebooks Flow hat Version 0.53 seines Projekts freigegeben. Da für das Release unter anderem Flows Modell für die aus dem selben Hause stammende React-Bibliothek überarbeitet wurde, hat das Team mit flow-upgrade ein Tool zum Aktualisieren eigenen Codes bereitgestellt. Fehler können nach dem Update unter anderem entstehen, da die Entwickler die Definition von Klassenkomponenten für React verändert haben. So nimmt die Klasse React.Component nun mit Props und State zwei statt drei Argumente entgegen, wobei sich letzterer weglassen lässt, sollte die Komponente zustandslos sein.

Darüber hinaus typisiert Flow nun Reacts Funktionsreferenzen und stellt mit React.ChildrenArray<T> einen neuen Typ zur Verfügung, um Probleme beim Umgang mit Kindelementen zu umgehen. Um das Modellieren komplexerer React-Patterns zu erleichtern, stehen eine Reihe neuer Utility-Typen zur Verfügung. Außerdem ermöglicht Flow nun den Einsatz mehrerer Spreads in JSX-Elementen und von Member-Ausdrücken in JSX-Komponenten.

Überarbeitet wurde auch, wie Flow Typechecks für Module gegenüber deren Abhängigkeiten durchführt. Statt zwei Durchläufe zu machen, wurden der Test pro Modul und der zwischen Modulen zu einem verbunden. Dadurch soll der Speicherbedarf bei der Arbeit mit großen Codemengen geringer ausfallen. Details finden sich in den Release Notes.

Bei Flow handelt es sich um einen statischen Typechecker für JavaScript, der als Open-Source-Projekt auf GitHub zur Verfügung steht. Er wird oft in Verbindung mit Facebooks Bibliothek zum Erstellen von Bedienoberflächen React verwendet. Beides ist unter einer BSD 3-Clause License und einer Ergänzung, Patente betreffend, geschützt. Diese Kombination hatte zuletzt Aufsehen erregt, da die Apache Foundation nach Prüfung des Zusatzdokuments den Einsatz entsprechender Projekte in unter ihrem Dach gehosteter Software untersagte. (jul)