Angular / Typescript rückwärts lesen

Leitwolf22

Lt. Junior Grade
Registriert
Juni 2008
Beiträge
256
Also ich mag völlig auf dem Holzweg sein, doch die Umstände haben mich nunmal an diesen herangeführt. Ich hab da ein bestehendes Projekt und versuche mich darüber schlau zu machen. Der Javascript Code (und ich habe bzw. hatte keinerlei Erfahrung mit Javascript) wirkt seltsam verschroben. Ich habe schnell verstanden, dass es sich nicht um originäres JS handelt, sondern halt um transpiliertes JS.

In meinem Verständnis sollte das eigentlich egal sein. JS ist JS, und kann auch als solches gelesen werden. Dennoch ist das halt mühsam, weil transpiliertes Typescript bzw. Angular einfach blöd und redundant daher kommt. Die Frage ist also, ob es denn überhaupt sinnvoll ist sich über den transpilierten JS Code herzumachen, oder aber ob man sich dann nicht doch lieber an die originäre Syntax halten sollte. Ich denke, wie gesagt, es sollte so oder so gehen, doch fehlen mir da einfach die Erfahrungswerte.

PS. mir ist bei einer oberflächlichen Suche aufgefallen, dass es zu diesem Thema wenig zu finden gibt.
 
Zuletzt bearbeitet:
Angular macht in meinen Augen nur mit Typescript Sinn (objektorientierter Ansatz), so wird die Technologie zumindest bei uns eingesetzt... (Java Backend + R für Jobverarbeitung).

Nachtrag, war wohl doch etwas früh, als ich geantwortet habe, die Frage ist mir jetzt klarer...
Der JS-Code mag durch Typescript redundanter erscheinen, die Wartung ist jedoch einfacher - um nicht zu sagen, überhaupt möglich, weil JS-Projekte zum Teil gar nicht wartbar sind - (was sich va bei großen Projekten bemerkbar macht). Ich bin kein JS-Experte, habe das aber von den Erfahrenen Entwicklern, die darin spezialisiert sind, immer wieder gehört.
 
Zuletzt bearbeitet:
Wenn du das Projekt hast, dann solltest du nicht nur den kompilierten Code haben, sondern auch den Quellcode.
Sicher, dass es TypeScript ist? Gibt ja noch zig andere Sprachen, die zu JS kompilieren. Wie z.B. CoffeeScript oder GWT (Java).

Ich bin mir noch nicht zu 100% sicher, was du mit diesem Thema hier erreichen willst. Aber ich versuch's einfach mal und gehe davon aus, dass es sich um TypeScript handelt ;)

Also du willst lieber reines, total unleserliches (weil kompiliertes) JavaScript lesen / bearbeiten, als extrem gut leserliches TypeScript? Bist du auf den Kopf gefallen? Oder liest du auch lieber kompilierten Assembler Code als C? :D

Vor allem ist die TypeScript Syntax zu 95% identisch zu JavaScript (teilweise ist es halt JavaScript, das bei der breiten Masse erst in 1-2 Jahren ankommen wird - aber es ist und bleibt JavaScript). Alle Zusatzfeatures, die TypeScript bietet, sind optional. Du kannst darin nach wie vor uralten JavaScript Code schreiben.

Meiner Meinung nach (und sehr viele Leute sind da bei mir) ist TypeScript das Beste was JavaScript je passiert ist. Sobald ein JS / TS Projekt mehr als 500 Zeilen hat will ich darauf nicht mehr verzichten. Die Vorteile beim Verständnis des Codes und den extrem präzisen Hilfestellungen, die die IDE und der TS Compiler bieten sind Gold wert.
Ich weiß, dass es auch schon jahrelang JsDoc gibt. Aber das ist nicht dasselbe. Das gibt dir zwar rudimentäre Typ Informationen und hilft der IDE hier und da ein wenig. Aber das wird schnell unleserlich und es fehlen viele nützliche Dinge.

Und wenn's dir wirklich zu blöd ist, gibt's diverse Tools im npm, mit denen du aus dem TS Code wieder uralten, normalen JS Code machen kannst. Dann musst du natürlich die Build Chain umstellen, damit noch alles funktioniert.

Abgesehen davon wird speziell der Angular Code extrem unleserlich, wenn man reines JavaScript benutzt.

Ich habe hier aktuell ein AngularJS (also der Vorgänger von Angular) Projekt, das zur Hälfte aus JS und zur Hälfte aus TS besteht. Der Code hat insgesamt über 100000 Zeilen. Der Unterschied und die Vorteile fallen sofort ins Auge. Wenn man am JS Code etwas ändere, dann kann ich dir garantieren, dass in 50% der Fälle total unerwartet irgendwas kaputt geht. Beim TS Code tritt das fast nie auf.

Und natürlich sollte man beim Entwickeln die entsprechenden Source Maps aktiviert haben, sonst wird's wirklich unpraktisch und frisst sehr viel Zeit.
 
Zuletzt bearbeitet:
Grundsätzlich macht es keinen Sinn sich den transpilierten Code anszusehen (außer man sucht nach bugs im Transpiler selbst oder Performance Problemen mit dem generierten Code). Wenn Du debuggen willlst, gibt es source maps die den code zurück auf das Original mappen. Das ist in etwa so als ob man sich den Assembler Output bei anderen Programmiersprachen ansieht.

Typescript sollte an sich recht lesbares JS produzieren, aber da kommt noch dazu das Typescript zu verschiedenen Leveln von Javascript kompilieren kann. Es kann modernen ES6 Code in "altes" Javascript umwandeln, so das auch alle alten Browser damit zurechtkommen. Das produziert aber Code den man nicht mehr selbst lesen möchte, der ist für Browser gedacht und nicht für Menschen.

Bei einem neuen Projekt würde ich auf jeden Fall einen Transpiler einsetzen, das hat einfach sehr viele Vorteile. Und hier scheint es ja schon eingerichtet sein, es gibt einfach keinen vernünftigen Grund hier am transpilierten Code etwas zu machen.
 
Vielen Dank für die Antworten.

Das hilft aber nun auch nur wieder bedingt. Wenn ich mir das Projekt ansehe, dann fehlen doch gerade in den relevanten Bereichen .map Files komplett. Auch ist mir nicht ganz klar ob man mit Hilfe des Mappings bloß sauberen JS Code kriegt, oder ob damit wirklich die originäre Syntax, also eben JQuery, TS, Angular .. was auch immer bekommt?

Und ja, in der Tat weiß ich natürlich nicht woraus der Code transpiliert wurde. Gibt es da irgendeine Form von Ratgeber wie man das am besten erkennen kann?

lg.
 
Wenn es um Angular geht, sollte das Typescript sein. Hast du keine .ts Dateien im Projektordner?

Was ist deine Aufgabe? Irgendwo Kleinigkeiten ändern, oder weiterarbeiten wo der andere aufgehört hat?
Falls der alte Entwickler den Source Code nicht rausrücken möchte, kannst du es eh vergessen.
 
Zurück
Oben