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.

