TypeScript · Middle · Frage 1 von 75
Was ist ein benutzerdefinierter Type Guard?
function isUser(x: unknown): x is User {
return typeof x === "object" && x !== null && "id" in x;
}- 1Eine Funktion mit dem Rückgabetyp
x is T, die das Argument beitrueeingrenzt - 2Syntax einer Type Assertion, gleichwertig mit
x as Userim Code - 3Ein Decorator, der den Argumenttyp bei jedem Aufruf zur Laufzeit prüft
Antwort zeigen
Richtige Antwort: Eine Funktion mit dem Rückgabetyp x is T, die das Argument bei true eingrenzt
Erklärung
Nach if (isUser(data)) hat data im Zweig den Typ User. Für die Richtigkeit der Prüfung ist der Entwickler verantwortlich: Der Compiler vertraut dem Prädikat. Seit TS 5.5 werden einfache Prädikate automatisch abgeleitet, etwa für arr.filter(x => x !== null).