TypeScript · Middle · Pytanie 1 z 75
Czym jest type guard zdefiniowany przez użytkownika?
function isUser(x: unknown): x is User {
return typeof x === "object" && x !== null && "id" in x;
}- ✓Poprawna odpowiedź: Funkcją ze zwracanym typem
x is T, która przytruezawęża argument - 2Dekoratorem, który przy każdym wywołaniu sprawdza typ argumentu w runtime
- 3Składnią asercji typu równoważną zapisowi
x as Userw kodzie
Wyjaśnienie
Po if (isUser(data)) wewnątrz gałęzi data ma typ User. Za poprawność sprawdzenia odpowiada programista: kompilator ufa predykatowi. Od TS 5.5 proste predykaty są wnioskowane automatycznie, np. dla arr.filter(x => x !== null).