TypeScript as const の代表的な効果

as const は TypeScript の安全性を高めてくれます。

特に有用なのは、widening してしまうところを防止する効果があります。

const name1 = ['tami', 'hito', 'botti'] // string[]
const name2 = ['tami', 'hito', 'botti'] as const //readonly ["tami", "hito", "botti"]


const obj1 = {
  name: 'tami',
  age: 34
}
// {
//   name: string;
//   age: number;
// }

const obj2 = {
  name: 'tami',
  age: 34
} as const
// {
//   readonly name: "tami";
//   readonly age: 34;
// }

as const の全体的な作用としていえることは、リテラル型が変更不可の状態になることです。

配列の要素数が固定になり、配列内の要素の型がwideningされず、readonly が付いたりします。