Avatar ·

O que significa "as const" no TypeScript e quando usá-lo?

Olá, colegas! Comecei a estudar TypeScript recentemente e me deparei com a construção `as const`. Honestamente, não entendo completamente o que ela faz e para que serve. Aqui está um exemplo que encontrei na documentação: ```typescript const colors = ['red', 'green', 'blue'] as const; ``` Eu entendo que `as` é usado para type assertion, por exemplo, `someValue as string`. Mas o que significa adicionar `const` após `as`? Como isso difere de uma simples declaração de array ou objeto? Tentei escrever este código: ```typescript const fruits = ['apple', 'banana']; const fruitsConst = ['apple', 'banana'] as const; // Qual é a diferença entre fruits e fruitsConst? // Por que não posso modificar fruitsConst? ``` Também notei que quando uso `as const` com objetos, o TypeScript começa a verificar rigorosamente os valores das propriedades. Por exemplo, se eu escrevo: ```typescript const config = { mode: 'development' as const, port: 3000 }; ``` Então o TypeScript não me permite...