¿Qué significa "as const" en TypeScript y cuándo usarlo?
¡Hola, colegas! Empecé a estudiar TypeScript recientemente y me topé con la construcción `as const`. Honestamente, no entiendo del todo qué hace y para qué sirve.
Aquí hay un ejemplo que encontré en la documentación:
```typescript
const colors = ['red', 'green', 'blue'] as const;
```
Entiendo que `as` se usa para type assertion, por ejemplo, `someValue as string`. Pero, ¿qué significa agregar `const` después de `as`? ¿En qué se diferencia de una simple declaración de array u objeto?
Intenté escribir este código:
```typescript
const fruits = ['apple', 'banana'];
const fruitsConst = ['apple', 'banana'] as const;
// ¿Cuál es la diferencia entre fruits y fruitsConst?
// ¿Por qué no puedo modificar fruitsConst?
```
También noté que cuando uso `as const` con objetos, TypeScript comienza a seguir estrictamente los valores de las propiedades. Por ejemplo, si escribo:
```typescript
const config = {
mode: 'development' as const,
port: 3000
};
```
Entonces TypeScript no me deja...