Lesson 23 of 56 · Typescript
Working with JSON & External APIs
Duration: 20 minutes
Parsing JSON
interface User { id: number; name: string; }
const raw = `[{"id":1,"name":"Alice"}]`;
const users: User[] = JSON.parse(raw);
Fetch API (browser & node ≥18)
async function getUser(id: number): Promise<User> {
const resp = await fetch(`https://jsonplaceholder.typicode.com/users/${id}`);
if (!resp.ok) throw new Error('Network error');
const data = await resp.json();
return data as User;
}
Runtime Validation with zod
npm i zod
import { z } from "zod";
const UserSchema = z.object({ id: z.number(), name: z.string() });
const parsed = UserSchema.parse(await resp.json());