Typsicherheit (englisch type safety) bedeutet, dass eine Programmiersprache verhindert, dass Werte unzulaessig als falscher Datentyp verwendet werden. Ein String laesst sich dann nicht stillschweigend wie eine Zahl addieren, und eine Funktion, die einen Boolean erwartet, bekommt keinen Text. Typsicherheit ist eine direkte Folge des Typsystems einer Sprache.
Statisch und dynamisch typisiert
Bei statisch typisierten Sprachen wie Java, C# oder Go prueft bereits der Compiler, ob alle Typen zusammenpassen. Viele Fehler werden damit schon vor dem Start gefunden. Bei dynamisch typisierten Sprachen wie Python oder JavaScript geschieht die Pruefung erst zur Laufzeit durch den Interpreter — das ist flexibler, birgt aber mehr Risiko fuer Laufzeitfehler. TypeScript bringt Typsicherheit nachtraeglich in JavaScript.
Starke und schwache Typisierung
Stark typisierte Sprachen erlauben keine stillen Typwechsel: Eine Variable vom Typ Null oder Boolean bleibt in ihrer Bedeutung erhalten. Schwach typisierte Sprachen wandeln Werte automatisch um, was praktisch sein kann, aber auch ueberraschende Ergebnisse liefert. Die Unterscheidung statisch/dynamisch betrifft den Zeitpunkt der Pruefung, stark/schwach die Strenge der Umwandlung.
Warum Typsicherheit wichtig ist
- Weniger Laufzeitfehler: Typfehler werden frueh gefunden, statt im Betrieb abzustuerzen.
- Bessere Werkzeuge: Editoren und IDEs koennen Autovervollstaendigung und Refactoring anbieten.
- Klarer Code: Typen dokumentieren die Absicht, etwa wenn eine Funktion einen Rueckgabewert liefert.
Zusammenhang: Ohne ein klares Typsystem mit primitiven Datentypen gibt es keine Typsicherheit. Moderne Sprachen ergaenzen Typsicherheit mit Operatoren und Syntax-Regeln, die bereits zur Kompilierzeit greifen.