typescript / expert
Snippet
Variadische Tupel-Typen für funktionale Komposition
Variadische Tupel-Typen erlauben es uns, die Struktur von Arrays und Argumenten präzise zu erfassen und zu manipulieren. Die Verwendung des Spread-Operators in Tupel-Typen ermöglicht rekursive Operationen auf Funktionsparametern, was für High-Level funktionale Programmierung unerlässlich ist.
snippet.ts
1
2
3
4
5
6
7
8
9
10
type Last<T extends any[]> = T extends [...any, infer L] ? L : never;type Shift<T extends any[]> = T extends [any, ...infer R] ? R : never;function tail<T extends any[]>(arr: [...T]): Shift<T> {const [_, ...rest] = arr;return rest as Shift<T>;}const tuple = [1, "hello", true] as const;const result = tail(tuple); // ["hello", true]
Erklärung
1
T extends [...any, infer L]
Verwendet Spread am Anfang, um alle Elemente außer dem letzten zu erfassen, welches als 'L' inferiert wird.
2
[...T]
Ein variadischer Tupel-Spread, der die exakten Literalwerte und die Reihenfolge beibehält, wenn die Eingabe ein 'const'-Array ist.