// `as const` keeps the literal types and makes the tuple readonly
const palette = ["red", "green", "blue"] as const;
// derive a union type straight from the values
type Color = (typeof palette)[number];
const favorite: Color = "green";
console.log(palette.length, favorite);as const freezes literal types for reuse