craftingIT

bridgingIT - Blog

TypeScript: Typdefinitionen mit Omit

- Tobias Meier - Microsoft Individualentwicklung
Themen: TypeScript
Blog Bild

Einer der großen Vorteile von TypeScript liegen in seinem statischen Typsystem. Durch eine konsequente Typisierung im Programm können viele Programmierfehler direkt vom Compiler entdeckt werden.

Im folgenden Codeausschnitt wird ein Interface für einen Contact definiert. Da die Id später auf dem Server vergeben wird, darf dieses Property auch weggelassen werden.

Genaugenommen darf es nicht gesetzt werden. Denn die Servermethode könnte so definiert sein, dass bei einer gesetzten id immer ein Update durchgeführt wird. Dann wäre folgender Codeausschnitt ein funktionaler Fehler:

Besser wäre es wenn das Feld Id überhaupt nicht am Contact gesetzt werden könnte. Eine Möglichkeit hierzu wäre per Hand ein neues Interface Contact zu schreiben, dies kann aber bei komplexeren Typdefinitionen in sehr viel Schreibarbeit ausarten. Mit Hilfe des Utility-Types Omit können bestimmte Properties entfernt werden.

Im nachfolgenden Beispiel werden alle Properties bis auf "id" von "Contact" übernommen:

Falls mehrere Properties exkludiert werden sollen, können diese mit dem Pipe-Operator verkettet werden:

Die Typen sind (mit Hilfe des keyof-Operators) so konstruiert, dass nur Propertynamen als String übergeben werden können. In allen anderen Fällen kommt es zu einem Compile-Fehler.