Anders Hejlsberg 01.09.2020, 10:55 Uhr

Template-Strings für TypeScript

Template-Strings sind eine Form von Zeichenkettenliteralen mit eingebetteten generischen Platzhalter, die durch Typinstantierung durch tatsächliche Zeichenkettenliterale ersetzt werden können.
(Quelle: https://github.com/microsoft/TypeScript/pull/40336)
Template-String-Typen sind das Typraum-Äquivalent von Template-String-Ausdrücken. Ähnlich wie Template-String-Ausdrücke sind Template-String-Typen in Backtick-Begrenzer eingeschlossen und können Platzhalter der Form ${T} enthalten, wobei T ein Typ ist, der zugeordnet werden kann zu string, number, boolean oder bigint. Template-String-Typen bieten die Möglichkeit, literale Strings zu verketten, Literale nicht-zeichenkettenbasierter primitiver Typen in ihre Zeichenkettenrepräsentation zu konvertieren und die Groß-/Kleinschreibung von Zeichenkettenliteralen zu ändern. Darüber hinaus bieten Template-String-Typen durch Typ-Inferenz eine einfache Form des Abgleichs und der Zerlegung von Zeichenkettenmustern.
Template-String-Typen werden wie folgt aufgelöst:
  • Union-Typen in Platzhaltern werden über den Template-String-Typ verteilt. Zum Beispiel wird `[${A|B|C}]` zu `[${A}]` | `[${B}]` | `[${C}]` aufgelöst. Union-Typen in mehreren Platzhaltern lösen auf das Kreuzprodukt auf. Zum Beispiel löst sich `[${A|B},${C|D}]` zu `[${A},${C}]` | `[${A},${D}]` | `[${B},${C}]` | `[${B},${D}]` auf.
  • Die Literaltypen string, number, boolean und bigint in Platzhaltern führen dazu, dass der Platzhalter durch die String-Repräsentation des Literaltyps ersetzt wird. Zum Beispiel wird `[${'abc'}]` zu `[abc]` aufgelöst und `[${42}]` wird zu `42` aufgelöst.
  • Jeder der Typen any, string, number, boolean oder bigint in einem Platzhalter bewirkt, dass die Schablonen-Zeichenkette zum Typ string aufgelöst wird.
  • Der Typ never in einem Platzhalter bewirkt, dass die Schablonen-Zeichenkette zu never aufgelöst wird.
Weitere Details sowie Anwendungsbeispiele finden Sie in diesem Post von Anders Hejlsberg auf GitHub.


Das könnte Sie auch interessieren