Sobes.tech
Middle

Wat zijn generieke medicijnen?

sobes.tech AI

Antwoord van AI

Generics in TypeScript maken het mogelijk om componenten (functies, klassen, interfaces) te maken die met verschillende datatypes kunnen werken, terwijl ze de typeveiligheid behouden. Ze stellen je in staat om flexibelere en herbruikbare code te schrijven, zonder de voordelen van statische typing te verliezen. Het eenvoudigste voorbeeld is het gebruik van generics in functies om hetzelfde type terug te geven als dat als argument is doorgegeven.

// Functie die een argument van elk type accepteert en teruggeeft
function identity<T>(arg: T): T {
    return arg;
}

// Gebruik van generics met een specifiek type - string
let outputString = identity<string>("string"); // Het type van outputString zal string zijn

// Gebruik van generics met automatische type-inferentie - number
let outputNumber = identity(123); // Het type van outputNumber zal number zijn

Generics kunnen ook worden gebruikt in klassen:

// Klasse die werkt met elementen van elk type
class GenericBox<T> {
    value: T;
    constructor(initialValue: T) {
        this.value = initialValue;
    }
}

// Aanmaken van een instantie van GenericBox met type string
let stringBox = new GenericBox<string>("hallo");
// Aanmaken van een instantie van GenericBox met type boolean
let booleanBox = new GenericBox(true); // TypeScript zal het type afleiden

En in interfaces:

// Interface met generiek
interface KeyValuePair<K, V> {
    key: K;
    value: V;
}

// Gebruik van de interface met specifieke types
let stringNumberPair: KeyValuePair<string, number> = { key: "leeftijd", value: 30 };

Voordelen van het gebruik van generics:

  • Herbruikbaarheid van code: Een structuur kan worden gebruikt met verschillende datatypes.
  • Typeveiligheid: De compiler controleert de types tijdens het compileren, waardoor potentiële fouten worden voorkomen.
  • Leesbaarheid en onderhoudbaarheid: De code wordt duidelijker, omdat het duidelijk is met welke types de component werkt.

Generics worden vaak gebruikt in bibliotheken en frameworks, zoals React (voor het typen van componentprops), Redux (voor het typen van de store), en bij het werken met collecties van gegevens.