Typvariablen in TypeScript

Für ein besseres Verständnis des Konzepts von Generics lassen Sie uns unsere erste Funktion erstellen - Identitätsfunktion. Eine solche Funktion gibt genau das zurück, was ihr übergeben wurde - mit demselben Typ.

Lassen Sie uns zunächst die Varianten unserer Funktion einzeln schreiben.

Schreiben wir eine Funktion, die eine Zahl als Parameter entgegennimmt und eine Zahl zurückgibt:

typescriptfunction func(data: number): number {
  return data;
}

Nun schreiben wir eine Funktion, die einen String als Parameter entgegennimmt und einen String zurückgibt:

typescriptfunction func(data: string): string {
  return data;
}

Nehmen wir nun an, wir möchten, dass das alles eine einzige Funktion erledigt. Das heißt, wir möchten eine Verallgemeinerung durchführen.

Dafür verwenden wir eine Typvariable, die den Datentyp speichert. Eine solche Variable wird in spitzen Klammern vor den runden Klammern mit den Funktionsparametern deklariert. Lassen Sie uns eine solche Variable deklarieren und ihr den Namen T geben (kann beliebig sein):

typescriptfunction func <T>(hier Parameter) {
  return data;
}

Danach haben wir die Variable T, die wir verwenden können, um den Typ des Parameters hineinzulegen, und dann ihn als Rückgabetyp anzugeben.

Geben wir unserem Parameter den Typ unserer Variable:

typescriptfunction func <T>(data: T) {
  return data;
}

Das Ergebnis ist, dass der Parameter in jedem Typ übergeben werden kann, und dieser Typ in unserer Variable T gespeichert wird.

Verwenden wir nun den Wert der Variable T um den Rückgabetyp der Funktion anzugeben:

typescriptfunction func <T>(data: T): T {
  return data;
}

Nun wird sich ergeben, dass der Rückgabetyp der Funktion sich aus dem Typ des Parameters ergibt. Lassen Sie uns das überprüfen.

Rufen wir die Funktion mit einer Zahl auf:

typescriptconsole.log( func(3) );   // gibt 3 aus

Rufen wir die Funktion mit einem String auf:

typescriptconsole.log( func('x') ); // gibt 'x' aus
Задание 1

Erstellen Sie eine Funktion, die als Parameter entweder zwei Zahlen oder zwei Strings entgegennimmt. Als Ergebnis soll die Funktion die Summe der Parameter zurückgeben.