Union Types: A or B
Use | to allow multiple type possibilities.
Union Types: A or B is a free TypeScript Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the TypeScript Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
Basic Union Syntax
let id: string | number;
id = 'abc123'; // OK
id = 42; // OK
// id = true; // ErrorUnion in Function Parameters
function format(val: string | number): string {
return typeof val === 'string' ? val.toUpperCase() : val.toFixed(2);
}Narrowing Required for Union Members
function process(val: string | number) {
// val.toFixed(2); // Error — not on string
if (typeof val === 'number') {
val.toFixed(2); // OK
}
}Union with Literal Types
type Direction = 'north' | 'south' | 'east' | 'west';
type StatusCode = 200 | 201 | 400 | 404 | 500;Union for Nullable Types
function getUser(id: number): User | null {
return db.find(u => u.id === id) ?? null;
}Union of Object Types
type Cat = { kind: 'cat'; meow(): void };
type Dog = { kind: 'dog'; bark(): void };
type Pet = Cat | Dog;
function speak(pet: Pet) {
if (pet.kind === 'cat') pet.meow();
else pet.bark();
}Three or More Types in a Union
type Input = string | number | boolean | null;Union in Return Types
function divide(a: number, b: number): number | null {
if (b === 0) return null;
return a / b;
}Discriminated Unions
type Square = { kind: 'square'; side: number };
type Circle = { kind: 'circle'; radius: number };
type Shape = Square | Circle;Common Properties Without Narrowing
type A = { name: string; x: number };
type B = { name: string; y: number };
type AB = A | B;
function getName(obj: AB): string {
return obj.name; // OK — name is on both
}Quick Check
Recap
Frequently asked questions
Is the “Union Types: A or B” lesson free?
Yes — the full text of “Union Types: A or B” is free to read here on the web, and the TypeScript Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the TypeScript Academy course, upgrade to CoddyKit PRO.
What will I learn in “Union Types: A or B”?
Use | to allow multiple type possibilities. You practise TypeScript Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start TypeScript Academy?
No prior experience is required. TypeScript Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Union Types: A or B” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this TypeScript Academy lesson?
Yes. Every TypeScript Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.