Assertions

as and satisfies.

as tells the compiler. satisfies checks a shape without widening.

Goal

Assert a JSON value is a Sale.

interface Sale { city: string; units: number }
const row = { city: "Nairobi", units: 12 } as Sale;
console.log(row.city);
const cities = ["Nairobi", "Mombasa"] as const;
console.log(cities[0]);
const row = {
  city: "Kisumu",
  units: 5,
} satisfies { city: string; units: number };
console.log(row.units);
const n = 12 as number;
console.log(n);