JSON and types

JSON.parse as unknown.

JSON.parse returns any unless you treat it as unknown.

Goal

Parse a kiosk string and log units.

const text = '{"city":"Nairobi","units":12}';
const raw: unknown = JSON.parse(text);
if (typeof raw === "object" && raw !== null && "units" in raw) {
  console.log((raw as { units: number }).units);
}
interface Sale { city: string; units: number }
const row: Sale = JSON.parse('{"city":"Mombasa","units":8}') as Sale;
console.log(row.city);
const rows = JSON.stringify({ city: "Kisumu", units: 5 });
console.log(rows);
try {
  JSON.parse("{");
} catch (err) {
  console.log("bad json");
}