typescript / expert
Snippet
Präzise Validierung mit dem 'satisfies' Operator
Der 'satisfies'-Operator validiert, ob ein Objekt einem Typ entspricht, ohne den inferierten Typ zu erweitern. Dies erlaubt es, spezifische Literal-Informationen zu behalten (z.B. dass 'red' ein Tuple ist), während sichergestellt wird, dass das Objekt einem allgemeinen Interface folgt.
snippet.ts
1
2
3
4
5
6
7
8
9
10
11
type Colors = "red" | "green" | "blue";type RGB = [number, number, number];const palette = {red: [255, 0, 0],green: "#00ff00",blue: [0, 0, 255]} satisfies Record<Colors, RGB | string>;// palette.red is inferred as [number, number, number], not string | RGBconst redValue = palette.red[0];
Erklärung
1
satisfies Record<Colors, RGB | string>
Prüft die Kompatibilität mit dem Record-Typ, ohne die spezifisch inferierten Formen der Eigenschaften zu überschreiben.
2
palette.red[0]
Sicherer Zugriff ist möglich, da 'satisfies' das Wissen bewahrt hat, dass 'red' exakt ein RGB-Tuple ist.