Bei Union-Typen musst du den Typ eingrenzen (Narrowing), bevor du typabhängige Dinge tust: mit typeof, instanceof oder einem Vergleich. TypeScript merkt sich das im jeweiligen Zweig.
In der Datei tsconfig.json schaltest du mit "strict": true strenge Prüfungen ein, etwa dass null und undefined nicht einfach überall erlaubt sind. Das ist empfehlenswert.
function laenge(x: string | number): number {
if (typeof x === "string") {
return x.length; // hier ist x ein string
}
return x; // hier ist x ein number
}
function name(p: { name?: string }) {
return p.name?.toUpperCase() ?? "unbekannt";
}Merke
typeofundinstanceofgrenzen Typen ein"strict": trueaktivieren?.und??gehen sicher mit fehlenden Werten um
Aufgabe
Schreibe eine Funktion, die bei string den Text groß schreibt und bei number die Zahl verdoppelt.