You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tests gibt es noch nicht, ich denke mein Ansatz dient erst mal der Orientierung und Diskussion.
1
+
Tests gibt es noch nicht, ich denke mein Ansatz dient erst mal der Orientierung und Diskussion. Wenn es alles so weit OK ist, können wir bestehende Tests auf TS umstellen.
3
2
4
3
Die Definitiondatei war ürsprünglich nicht systematisch erstellt, sondern hat sich aus den Anforderungen ergeben, die ich ad hoc beim Verwenden von Jsonix ergeben haben. Dazu hatte ich mir ursprünglich den Context rekursiv (begrenzt auf eine gewisse Tiefe) als JSON.stringify ausgeben lassen und dann bearbeitet, was natürlich nicht so gut die Class-Hierarchie trifft.
5
4
6
-
Da ich kein professionelles UML-Tool besitze (und schon gar keins, was TS erzeugt, falls es so etwas überhaupt gibt), bin ich auf Java ausgewichen.
5
+
Da ich kein professionelles UML-Tool besitze (und schon gar keins, was TS erzeugt, falls es so etwas überhaupt gibt (StarUML und TS-Plugin bekomme ich nicht zum laufen)), bin ich auf Java ausgewichen.
7
6
Die Klassen, die in Java erzeugt werden "ähneln" den Design-Pattern von TS, so dass man Ende mit ein paar regulären Ausrücken, den Code umwandeln kann (zu den Interfaces komme ich später. Man könnte das natürlich auch via xmi lösen, das fände ich zum gegenwärtigen Zeitpunkt aber etwas übertrieben.
8
7
9
8
Die Klassenhierarchie aus
@@ -20,17 +19,6 @@ In der Java Uml habe ich einfach Interfaces benutzt, was nicht ganz korrekt ist,
20
19
21
20
In TS und plain-JS, was d.ts benutzt gibt es keinen wirklich funktionierende instanceof Implementierung. Das generierte JS weiß quasi nichts von den Klassen, die in TS definiert sind. Der Code "weiß", wenn er eine TypeInfo verarbeitet nicht, ob es nicht vielleicht eine ClassInfo ist. Jsonix benutzt hier in jeder Klasse ein CLASS_NAME Feld, das konnte ich in die Interfaces nicht aufnehmen, da sie keinen Initializer besitzten dürfen (das Problem sollte aber erledigt sein, wenn man Klassen definiert, die ein CLASS_NAME Feld besitzen können).
22
21
22
+
Ich hätte gerne Generics eingebaut, leider geht das wegen der gekapselten factory nicht. Hier könnte man eine Funktion in Jsonix ergänzen, dann sollte es gehen:
0 commit comments