10. Czym są typy generyczne (generyki)?

Generyki w TypeScript to mechanizm pozwalający na tworzenie ogólnych typów i funkcji, które mogą działać z różnymi typami, które przyjmują jako swoisty argument. Pozwalają na uzyskanie bardziej elastycznego i bezpiecznego kodu.

const firstElement = function <T>(arr: T[]): T | undefined { return arr[0]; } const num: number | undefined = firstElement([1, 2]); const string1: string | undefined = firstElement([1, 2]); // Type 'number' is not assignable to type 'string' const string2: string | undefined = firstElement(["a", "b"]);

Generyki mogą by używane również w deklaracjach klas czy interfejsów.

Typy generyczne mogą rozszerzać inne typy a take przyjmować wartości domyślne:

interface RandomInterface { abc: string } const firstElement = function <T extends RandomInterface>(arr: T[]): T | undefined { return arr[0]; } //default type const lastElement = function <T = RandomInterface>(arr?: T[]): T | undefined { return ...; } const last = lastElement(); // Assumes last is of type RandomInterface const first = firstElement([{value: "val"}]); // Object literal may only specify known properties, and 'value' does not exist in type 'RandomInterface' const anotherFirst = firstElement([{abc: "ABC", value: "val"}]); // OK

Więcej informacji dostępnych jest np. tutaj.

devFlipCards 2024

Akceptujesz cookies?

Cookies to niewielkie fragmenty danych zapisywane lokalnie na twoim urządzeniu. Pomagają w funkcjonowaniu naszej strony - zapisują Twoje ustawienia strony takie jak motyw czy język. Poprawiają funkcjonowanie reklam i pozwalają nam na przeprowadzanie analityki odwiedzin strony. Korzystając ze strony zgadasz się na ich wykorzystanie.