Czym są typy użytkowe w TypeScript?
Typy użytkowe w TypeScript to predefiniowane typy, które ułatwiają często spotykane transformacje typów. Pomagają programistom w manipulacji typami, często upraszczając i redukując powtarzający się kod. Przykładami typów użytkowych są Partial
, Readonly
, Pick
, Omit
, Record
i NonNullable
między innymi.
Użycie typu użytkowego NonNullable
Typ użytkowy NonNullable
służy do wykluczania null
i undefined
z typu. Przyjmuje typ T
i zwraca typ, który nie zawiera null
ani undefined
.
Składnia
NonNullable<T>
Przykład
Rozważ funkcję, która przetwarza obiekt użytkownika. Chcemy upewnić się, że pewne pola nie są null ani undefined.
type User = { name: string | null; age: number | undefined; }; function processUser(user: NonNullable<User>) { console.log(`Imię użytkownika to ${user.name}, a wiek to ${user.age}`); } // Poprawne użycie processUser({ name: 'Alicja', age: 30 }); // Imię użytkownika to Alicja, a wiek to 30 // Niepoprawne użycie // processUser({ name: null, age: 30 }); // Błąd: 'null' nie jest przypisywalny do typu 'string'. // processUser({ name: 'Alicja', age: undefined }); // Błąd: 'undefined' nie jest przypisywalne do typu 'number'.
W tym przykładzie NonNullable<User>
zapewnia, że zarówno name
, jak i age
nie są null
ani undefined
, wymuszając większe bezpieczeństwo typów podczas przetwarzania danych użytkowników.
Podsumowanie
Typ użytkowy NonNullable
jest szczególnie przydatny w sytuacjach, w których chcemy wymusić obecność prawidłowej wartości, skutecznie unikając błędów wykonawczych związanych z wartościami null
lub undefined
.