5 Gründe, warum Deno auf TypeScript verzichten wird
Heute ist ein Dokument aufgetaucht, das darauf hinweist, dass Deno die Verwendung von TypeScript in seinem internen Code einstellen wird, und mehrere Probleme mit der aktuellen Umgebung anführt. Zu den genannten Problemen gehören unter anderem TypeScript-Kompilierungszeiten, Strukturierung und Codeorganisation. In Zukunft wird Deno reines JavaScript für seinen internen Code verwenden.
Deno-Probleme mit TypeScript
Die ungünstigen Situationen, die das Deno-Team derzeit bei der Verwendung von TypeScript für seinen internen Code erlebt, sind:
-
Die TypeScript-Kompilierungszeit beim Ändern von Dateien dauert mehrere Minuten, was das kontinuierliche Kompilieren zu einem unerträglich langsamen Prozess macht
-
Die Typescript-Struktur, die sie in den Quelldateien verwenden, die die eigentliche ausführbare Deno-Datei erstellen, und die benutzerorientierten APIs verursachen Laufzeitleistungsprobleme
-
TypeScript erweist sich nicht als hilfreich, um Deno-Code zu organisieren. Im Gegenteil, das Deno-Team erlebt den gegenteiligen Effekt. Eines der erwähnten Probleme ist, dass sie an zwei Stellen https://github.com/denoland/deno/issues/4748 mit doppelten unabhängigen Body-Klassen endeten
-
Der interne Code und die Laufzeit-TypeScript-Deklarationen müssen manuell synchron gehalten werden, da der TypeScript-Compiler nicht hilfreich ist, um die d.ts-Dateien zu generieren
-
Sie unterhalten zwei TS-Compiler-Hosts: einen für den internen Deno-Code und einen anderen für externen Benutzercode, obwohl beide ein ähnliches Ziel haben
Entfernen von TypeScript im internen Deno-Code
Das Deno -Team beabsichtigt, alle Build-Time-TS-Typprüfungen und -Bündelungen für internen Deno-Code zu entfernen. Sie freuen sich darauf, den gesamten Laufzeitcode in eine einzige JavaScript -Datei zu verschieben. Sie verwenden jedoch weiterhin eine begleitende d.ts-Datei, um die Typdefinitionen und die Dokumentation aufzubewahren.
Erwähnenswert ist, dass Deno aufhören wird, TypeScript nur noch für den internen Deno-Code zu verwenden: Der Deno-Benutzercode wird weiterhin in TypeScript vorliegen und somit typgeprüft sein.
Während TypeScript manchmal als verbesserte Version von JavaScript angesehen wird, zeigt dieser Fall, dass dies tatsächlich nicht der Fall ist. Sie hat Fehler wie jede andere Sprache. Einer der wichtigsten ist die langsame Kompilierungszeit. Während bei kleinen Projekten beim Wechsel von reinem JavaScript zu TypeScript möglicherweise keine große Spitze in der Kompilierungszeit zu verzeichnen ist, wird dies bei großen Projekten wie einer komplexen React- App bemerkbar sein. Angesichts der Größe seiner Laufzeit ist es nicht verwunderlich, dass Deno die Verwendung von TypeScript einstellen wird.
Die Sicherheit der Typprüfung während der Entwicklung hat ihren Preis zum Zeitpunkt der Kompilierung. Nicht umsonst hat das TypeScript-Projekt ein umfangreiches Dokument, wie man die Kompilierzeit adressieren und verbessern kann. Einer der interessantesten Ansätze ist die Verwendung von Project References, die es Entwicklern ermöglichen, einen großen TypeScript-Code in kleinere Teile zu zerlegen.
Lesen Sie mehr darüber, warum Deno die Verwendung von TypeScript einstellen wird
Die vollständige Diskussion über die Entscheidung, TypeScript aus dem internen Deno-Code zu entfernen und stattdessen JavaScript zu verwenden, finden Sie in diesem Dokument, in dem Ryan Dahl und Mitarbeiter das Problem, seine Lösung und die Implementierung diskutieren.