Sie geben Parameter und den Rückgabetyp ein, und TypeScript unterstützt optionale, Standard- und Rest-Parameter.
ts
// basic
function add(a: number, b: number): number { return a + b; }
// optional parameter (?) — must come after required ones
function greet(name: string, title?: string): string {
return title ? `${title} ${name}` : name; // title is string | undefined
}
// default parameter — implies optional
function inc(n: number, by: number = 1): number { return n + by; }
// rest parameter — typed as an array
function sum(...nums: number[]): number {
return nums.reduce((a, n) => a + n, 0);
}
Function type expressions
Sie können die Signatur einer Funktion als Typ beschreiben — nützlich für Callbacks und Variablen, die Funktionen halten:
ts
type BinaryOp = (a: number, b: number) => number;
const multiply: BinaryOp = (a, b) => a * b; // params inferred from BinaryOp
// callback parameter
function apply(op: (x: number) => number, val: number) { return op(val); }
Overloads (multiple signatures)
ts
function parse(x: string): number;
function parse(x: number): string;
function parse(x: any): any { return typeof x === "string" ? +x : String(x); }
Warum es wichtig ist
Das präzise Typisieren von Funktionen ist der Kern von TypeScripts Wert — Aufrufer erhalten geprüfte Argumente und bekannte Rückgabetypen, optionale und Standardparameter modellieren Flexibilität in der realen Welt, und Funktionstyp-Aliase machen höherwertigen Code (Callbacks, Event-Handler, Middleware) selbstdokumentierend und sicher.
