Was bedeutet "as const" in TypeScript und wozu wird es benötigt?
Hallo zusammen! Ich habe angefangen, TypeScript zu lernen, und bin auf die Konstruktion `as const` gestoßen. Ich habe verstanden, dass sie irgendwie mit Typzusicherungen zusammenhängt, aber ich kann es nicht ganz nachvollziehen.\n\nHier ist ein Beispiel, das mich verwirrt:\n\n```typescript\nconst colors = ['red', 'green', 'blue'] as const;\n// typeof colors -> readonly ["red", "green", "blue"]\n\nconst myColor = 'red' as const;\n// typeof myColor -> "red" (literal type, nicht string)\n\nconst config = {\n api: 'https://api.example.com',\n port: 3000\n} as const;\n// typeof config -> { readonly api: "https://api.example.com"; readonly port: 3000 }\n```\n\nIch sehe, dass sich die Typen ändern, aber ich verstehe nicht:\n\n1. Warum ergibt einfaches `const colors = ['red', 'green', 'blue']` den Typ `string[]`, aber mit `as const` ein Tuple mit konkreten Literalen?\n2. Wozu überhaupt `as const` angeben, wenn die Variable bereits mit `const` deklariert ist? Macht `const` den Wert nicht unveränderlich?\n3. In welchen realen Szenarien könnte das nützlich sein? Ich habe gesehen, dass es in Redux actions verwendet wird,