O que significa "as const" no TypeScript e para que serve?
Olá a todos! Comecei a estudar TypeScript e me deparei com a construção `as const`. Entendi que ela está relacionada à afirmação de tipos, mas não consigo entender completamente.\n\nAqui está um exemplo que me confunde:\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" (tipo literal, não 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\nVejo que os tipos mudam, mas não entendo:\n\n1. Por que simplesmente `const colors = ['red', 'green', 'blue']` dá o tipo `string[]`, enquanto com `as const` dá uma tupla com literais específicos?\n2. Para que serve especificar