Typlöschung
# Typlöschung

In der Softwareentwicklung bezeichnet Typlöschung (lehnübersetzt aus dem englischen Ausdruck Type Erasure) den Prozess, durch welchen Typen aus dem Programm entweder vollständig oder teilweise entfernt werden, bevor es zur Laufzeit ausgeführt wird. Typlöschung kommt in Programmiersprachen zum Einsatz, in denen die operationelle Semantik keine Typen während der Programmausführung erfordert, oder um Kompatibilität der kompilierten Binärdateien aus verschiedenen Versionen einer Programmiersprache sicherzustellen.

## Verwendung

Typlöschung kommt unter anderem bei der Transkompilierung von TypeScript zu JavaScript zum Einsatz. Dabei werden sämtliche expliziten Typsignaturen entfernt, da JavaScript als dynamisch typisierte Sprache keine Typdeklarationen im Code verwendet. Der TypeScript Compiler entfernt bei der Kompilierung des nachfolgenden Code-Abschnitts somit sämtliche Typen:
Dadurch entsteht (nach weiteren, vorgenommenen Kompilierungsschritten) der nachfolgende JavaScript-Code:
Zu beachten ist hierbei insbesondere die Funktionssignatur, in welcher die beiden expliziten Typdeklarationen entfernt wurden.
Des Weiteren wird Typlöschung bei der Entfernung bzw. Umwandlung generischer Typen in Java 5 verwendet.

## Typinferenz

Die umgekehrte Operation ist die Typinferenz. Durch Typinferenz kann während der Programmierung auf die explizite Angabe von Typen verzichtet werden, sofern diese aus den restlichen Angaben und den Typisierungsregeln der jeweiligen Programmiersprache abgeleitet werden können.