JavaScript / TypeScript

Existential Types in TypeScript

Aus Haskell kennen wir die sogenannten ‚Existential Types‘. TypeScript bietet leider nicht von Haus aus, diese Funktionalität an. Demnach gibt es immer wieder Code wie diesen, der so nicht funktioniert: Der Code soll beim zweiten Array Element einen Fehler erzeugen, das passiert aber nicht, da any erlaubt ist und der TypeScript Compiler aktuell nicht weiß, …

Existential Types in TypeScript Weiterlesen »

Wie wertvoll sind Snapshot-Tests?

Die meisten Frontend-Entwickler kennen Snapshot-Tests aus dem Test-Framework ‚Jest‘. Diese Tests versprechen laut offizieller Webseite folgendes Snapshot tests are a very useful tool whenever you want to make sure your UI does not change unexpectedly. https://jestjs.io/docs/snapshot-testing, aufgerufen am 29.12.2021 Wollen wir uns einmal kurz die Frage stellen, was ist an diesem Versprechen dran und wie …

Wie wertvoll sind Snapshot-Tests? Weiterlesen »

Type | Treat (Type or Treat) – Tag 5/5

Die Challenge neigt sich dem Ende. Auch am letzen Tag bekommen wir nochmals eine tolle Challenge. Der erste Teil der Challenge ist es, die Schema Namen entsprechend aus der Konstante zu generieren: Im nächsten Schritt, soll die Object.keys Funktion so angepasst werden, dass die ‚Scheme Items‘ zurück gegeben werden. Ich habe hier bewusst auf einen …

Type | Treat (Type or Treat) – Tag 5/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 4/5

Auch am vierten Tag, gibt es wieder zwei coole Challenges. Werfen wir einen Blick auf die Ausgangssituation, die ‚getBowl‘ Funktion verliert den Typen und wir müssen einen Compiler-Fehler erzeugen. Im zweiten Teil der Challenge, müssen wir die Funktion ‚fillBowls‘ so erweitern, dass die Typen ein String Literal ergeben anstelle eines ’string;‘ Die Funktion ‚getBowl‘ kann …

Type | Treat (Type or Treat) – Tag 4/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 3/5

Auch am dritten Tag gibt es wieder zwei Challenges (Beginner und Intermediate). Zunächst blicken wir wie die Tage zuvor auf die Beginner Challenge. In dieser war es wichtig, das Konzept der String Literals zu kennen und anwenden zu können. Demnach ist die Aufgabe wie folgendermaßen lösbar: Intermediate Die Intermediate Challenge hatte es jedoch etwas in …

Type | Treat (Type or Treat) – Tag 3/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 2/5

Kommen wir nun zum zweiten Tag, der Type or Treat Challenge. Lass uns gemeinsam heute einen Blick auf meinen Lösungsansatz bzw. Lösungsvorschlag werfen. In dieser Challenge, bekommen wir eine Liste an Kürbissen. Aus diesen sollen wir drei Typen ableiten, um diese Kürbisse entsprechend kategorisieren zu können. Damit wir dies korrekt ableiten können, hier einmal die …

Type | Treat (Type or Treat) – Tag 2/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 1/5

Wie Jahr 2020, gibt es auch dieses Jahr die Type | Treat (Type or Treat) Challenge 🎃. In dieser Challenge werden wir Aufgaben bekommen TypeScript Code korrekt zu typisieren. Dabei soll, durch spielerische Art, das Lernen des Typen-Systems in den Vordergrund gerückt werden. Die erste Challenge findet ihr hier: https://devblogs.microsoft.com/typescript/type-treat-2021-day-1/. Dort gibt es zwei Aufgaben, …

Type | Treat (Type or Treat) – Tag 1/5 Weiterlesen »

Java Optionals in TypeScript

Optionals in Java haben sich als starkes und wertvolles Konstrukt erwiesen. Java Entwickler die zu TypeScript wechseln, vermissen oftmals dieses Feature. Heute möchten wir uns ansehen, wie wir Optionals in TypeScript implementieren können. Ziel von Optionals ist es, unnötige null checks zu verhindern und den Code somit leserlicher und kürzer zu halten. Um Optionals zu …

Java Optionals in TypeScript Weiterlesen »

Map oder Filter auf Iterator Objekten

Laut MDN gibt die Funktion Map#keys() ein Iterator zurück. Mit Hilfe der Funktion Array#from können wir daraus ein Array machen welches die Funktionen filter, map etc. hat. Wenn man aber nicht Array#from benutzen möchte, kann man hier für auch einfach Hilfsmethoden implementieren, die von einem Iterator gebrauch machen. Im Folgenden zeige ich euch für filter …

Map oder Filter auf Iterator Objekten Weiterlesen »