Facebook: Flow bringt statische Typen für Javascript
Mit Flow soll sich eine statische Typisierung in Javascript umsetzen lassen. Die Software überprüft die Typen im Hintergrund und soll die Fehlersuche sowie die Codeverwaltung deutlich vereinfachen.

Javascript besitzt anders als C und C++ standardmäßig keine statischen Typen. Ob etwa ein Argument zu einer bestimmten Funktion passt, wird zur Laufzeit ermittelt und nicht durch die Typen beim Kompilieren bestimmt. Das erschwert jedoch die Fehlersuche und die Pflege oder die Optimierung von viel Javascript-Code. Das meint zumindest Facebook und stellt mit Flow nun eine statische Typenüberprüfung für Javascript bereit.
Da die Vereinigung von statischen Typen mit klassischem Javascript eher schwierig in der Umsetzung ist, verwendet Flow eine Analyse der Daten- und Kontrollflüsse, die viele Compiler benutzen, um semantische Informationen zu erhalten. Zusätzlich dazu wird die Annahme genutzt, dass der meiste Javascript-Code implizit statische Typisierung nutzt. Die Typenzugehörigkeit schlussfolgert Flow schlicht aus dem Code.
Die Typenüberprüfung geschieht dabei als Opt-in, dass heißt Nutzer können selbst entscheiden, welche Codebestandteile kontrolliert werden. Hilfreich ist das vor allem für Frameworks, die meist inhärent dynamischen Code verwenden. Diese Teile können mit Flow einfach übergangen werden. Damit unterscheide sich die Herangehensweise fundamental von anderen Typsystemen für Javascript wie etwa Typescript.
Flow unterstützt einfache Standard-Typen wie number, string, boolean, aber auch Typen-Verbunde wie für Funktionen, Objekte oder Arrays. Zudem dürfen Typen polymorph sein. Darüber hinaus wird der Typ any unterstützt, der genutzt werden kann, um das statische Typensystem in besonderen Situationen explizit zu umgehen.
Außerdem unterstützt Flow bereits viele Eigenschaften des Ecmascript6-Standards. Serverseitig benutzt Flow eine ähnliche Architektur wie Hack und überprüft verschiedene Module eines Projekts einzeln, so dass die Anwendung sehr gut skalieren können soll. Der hauptsächlich in OCaml geschriebene Code findet sich auf Github, Details zu dem Projekt bietet die Dokumentation.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
React und Jest sind nun keine besonderen Erfindungen, HHVM ist bis heute unbenutzbar für...
Und zwar? Es existiert gar kein Unterschied, im Gegenteil, TypeScript ist sogar mächtiger...