Sie haben also keine Zeit, sich umzudrehen, und der Monat strebt bereits nach seiner Fertigstellung. Bis zur Einführung eines neuen Threads zum Kurs
"JavaScript Developer" verbleiben traditionell einige Tage, bevor wir den Kurs beginnen. Bevor wir mit dem Kurs beginnen, werden wir Ihnen die Übersetzung von nützlichem Material mitteilen.
Vanilla JavaScript ist nicht von Natur aus typisiert. Sie können ihn sogar als „intelligent“ bezeichnen, da er berechnen kann, was eine Zahl und was eine Zeichenfolge ist.
Dies erleichtert das Ausführen von JavaScript-Code in einem Browser oder beim Ausführen von Node.js. Es ist jedoch anfällig für zahlreiche Laufzeitfehler (Laufzeit), die Ihre Benutzererfahrung beeinträchtigen können.

Wenn Ihnen jemals etwas passiert, was später beschrieben wird, gewinnen Sie nur, wenn Sie das Typsystem verwenden.
- Nach dem Empfang einer Datenliste stellen Sie fest, dass in einem der Datensätze kein bestimmtes Feld vorhanden ist. Dies führt zu einer Fehlfunktion der Anwendung, wenn dieser Fall nicht erfasst und nicht explizit verarbeitet wird.
- Die Instanz der Klasse, die Sie importiert haben, verfügt nicht über die Methode, die Sie aufrufen möchten.
- Ihre IDE weiß nicht, welche Methoden und Eigenschaften für Module und Bibliotheken verfügbar sind, daher kann sie die automatische Vervollständigung nicht effizient anbieten.
Flow, TypeScript oder ReasonMLAngenommen, Sie haben eine vorhandene Codebasis, die Sie zuverlässiger und stabiler machen möchten. Unter Berücksichtigung vorhandener Tippfehler können Sie versuchen, Flow oder TypeScript zu verwenden (diese haben eine ziemlich ähnliche Syntax).
Auf der anderen Seite ist es schwierig, jedes dieser sperrigen Werkzeuge zu verwenden. Sie werden sich mit der Arbeit zum Erstellen von Typen und Schnittstellen für Code beladen, die zuvor noch nicht entwickelt wurden.
Trotzdem bieten Flow und TypeScript keine 100% ige Sicherheit beim Hinzufügen von Code.
Aus diesem Grund wird eine ideale Typisierungssicherheit durch Inferenz erreicht und das Annotieren von Variablen und Funktionssignaturen vereinfacht.
Einfache und klar erfundene BeispieleBetrachten Sie den folgenden Code:
let add = (a, b) => a + b;
In normalem JavaScript können diese Argumente Zahlen oder Zeichenfolgen sein. In TypeScript oder Flow können diese Argumente wie folgt kommentiert werden:
let add = (a: number, b: number) => a + b
Jetzt setzen wir anscheinend genau zwei int-Werte. Nicht zwei Floats oder zwei Strings, andere Operatoren werden für ihre Additionsoperationen verwendet.
Schauen wir uns nun ein leicht modifiziertes Beispiel in Reason an:
let add = (a: string, b: number) => a + b add('some string', 5)
Diese Funktion funktioniert! Und das mag überraschend erscheinen. Wie versteht die Vernunft das?
let add = (a, b) => a + b; add("some string", 5);
Diese Funktion hatte Fehler auf der Implementierungsebene. Reason hat verschiedene Operatoren zum Hinzufügen von int, float und string.
Mit diesem einfachen Beispiel soll gezeigt werden, dass zusätzliche „Typfehler“ auftreten können, auch wenn die Anwendung dadurch nicht gelöscht wird.
In einem Reason-Programm müssen Entwickler nicht mit Produktionsfehlern umgehen, die aufgrund von Inkompatibilität von Typen oder Nullwerten auftreten.
EntwicklererfahrungEine der schönsten Funktionen in TypeScript ist, dass Sie im Code-Editor Verbesserungsvorschläge oder die automatische Vervollständigung sehen.
Dies ist ein Bereich, in dem TypeScript Vorrang vor Reason hat, da ein TypeScript-Programm nicht perfekt kompiliert werden muss, um eine automatische Vervollständigung zu ermöglichen. Der Grund zwingt Sie, alle Fehler in der Syntax und den Typen zu korrigieren, bevor Sie eine nützliche Lösung anbieten.
So funktioniert es in VSCode, aber ich kenne viele Reason-Entwickler, die vim verwenden. Hier werden wir nicht auf Vergleiche eingehen.
Obwohl ich ein großer Fan von Reason bin, habe ich auch Anwendungen in TypeScript oder Flow geschrieben. Die Hype-Welle um TypeScript bietet einen guten Anreiz, sich dafür zu entscheiden, da es eine großartige Community-Unterstützung bietet.
Die Vernunft ist dagegen schwieriger zu verwenden, da weniger Artikel und Dokumentationen zur Verfügung stehen. Ich hoffe, dass dies mit seiner Entwicklung korrigiert wird.
Wenn Sie an Reason interessiert sind, finden Sie die Dokumentation
hier . Und
folge Leuten wie
@jordwalke ,
@jaredforsyth und
@sgrove auf Twitter. Sie können viel über das Reason / OCaml-Ökosystem erzählen.
Wenn Sie wissen möchten, wie Reason mit GraphQL funktioniert, lesen Sie meinen anderen Artikel
„Reason mit GraphQL, die Zukunft typsicherer Webanwendungen“ .
Wir warten auf Feedback zum Material und laden nach gängiger Tradition alle Leser zu einem
Tag der
offenen Tür ein , der am 25. März von unserem Lehrer
Alexander Korzhikov abgehalten wird .