Einführung in TypeScript-Funktionstypen

TypeScript erfordert Typen für alles. Das schließt auch Ihre Funktionen ein. Sie müssen Typen für Eingaben und Ausgaben definieren.

Funktionssyntax

Sie definieren Eingabetypen und einen Ausgabetyp wie folgt:

function add(x: number, y: number): number {
  return x + y;
}

TypeScript nutzt außerdem Typinferenz. Sie müssen den Ausgabetyp nicht immer explizit angeben. Der Compiler ermittelt ihn für Sie.

Wenn Ihre Funktion verschiedene Typen zurückgibt, übernimmt TypeScript dies. Wenn eine Funktion beispielsweise eine Zahl oder einen String zurückgibt, erkennt der Compiler beides.

Spezielle Rückgabetypen

  • void: Verwenden Sie dies, wenn eine Funktion nichts zurückgibt.
  • never: Verwenden Sie dies, wenn eine Funktion einen Fehler auslöst oder das Programm stoppt.

Parameter

Sie können Parameter mithilfe eines Fragezeichens optional machen.

function makeProfile(name: string, age: number, url?: string) {
  // code
}

Sie können auch Standardwerte verwenden. Dies macht einen Parameter ohne spezielle Symbole optional.

function makeProfile(name: string, age: number, url: string = "www.example.com") {
  return name + " visits " + url;
}

Callback-Funktionen

Funktionen sind Werte. Sie können sie als Argumente übergeben. Um einen Callback-Typ zu definieren, verwenden Sie diese Syntax:

function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
  func(param1, param2);
}

Die Namen der Parameter im Callback spielen keine Rolle. Nur die Typen sind entscheidend.

Funktions-Arrays

Wenn Sie eine Liste von Funktionen benötigen, definieren Sie diese als ein Array dieses Funktionstyps.

function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
  // code
}

Rest-Parameter

Verwenden Sie den Spread-Operator, um eine beliebige Anzahl von Argumenten zu akzeptieren. Dadurch werden alle Eingaben in einem Array gespeichert.

function sum(...numbers: number[]) {
  // code
}

sum(1, 2, 3);

Quelle: https://dev.to/jsha/introduction-to-typescript-function-types-hin