BeginnerLesson 7 of 1830 min 路 hands-on
Type Narrowing
Part of the TypeScript course
A union says "this value is one of several types". Narrowing is the compiler's process of figuring out which one, based on the runtime checks you write. You barely write any new syntax for this lesson, the work is in reading code like the compiler does.
The simplest case: a parameter that is string | number. Inside an if (typeof x === "string") branch, the compiler knows x is a string and lets you call string methods on it. ...
Want to learn TypeScript Type Narrowing in a real environment?
Click below, get a fresh Linux box with TypeScript ready to go, and work through Type Narrowing hands-on with an AI tutor that knows your code.
Start this lessonType NarrowingWhat you'll learn
- Typeof narrowing
- Truthiness narrowing
- Equality narrowing
- In operator narrowing
- Instanceof narrowing
- Discriminated unions
- Exhaustiveness with never
Read this lesson in your language
All lessons in this course
18 lessons- 1Hello, TypeScript20 min
- 2Type Basics25 min
- 3Arrays and Tuples25 min
- 4Object Types and Interfaces25 min
- 5Functions25 min
- 6Union and Literal Types25 min
- 7Type Narrowing30 min
- 8Type Aliases vs Interfaces20 min
- 9Optional, Readonly, and Nullable25 min
- 10Enums20 min
- 11Generics30 min
- 12Classes25 min
- 13Inheritance and Abstract Classes25 min
- 14Modules25 min
- 15Utility Types30 min
- 16Mapped and Conditional Types30 min
- 17Declaration Files and Libraries25 min
- 18tsconfig and the Compiler30 min
Explore other courses
Python
19 lessons 路 9.3h
Go
20 lessons 路 12.3h
React
17 lessons 路 10.2h
Linux
17 lessons 路 8.5h
Docker
13 lessons 路 6.6h
Git
13 lessons 路 5.9h
Kubernetes
14 lessons 路 8h
Ansible
12 lessons 路 6.1h
Bash
12 lessons 路 5.7h
Helm
10 lessons 路 5.4h
GitLab CI
11 lessons 路 5.8h
Jenkins
11 lessons 路 5.3h
PostgreSQL
14 lessons 路 7.6h
MySQL
13 lessons 路 6.8h
Web
14 lessons 路 5.9h
Vibe Coding
12 lessons 路 5.8h
Prompt Engineering
11 lessons 路 6.2h
Vibe Coding: Fundamentals
12 lessons 路 4.5h
Vibe Coding: Prototype to Production
12 lessons 路 5.5h
Vibe Coding: Multi-Agent Engineering
12 lessons 路 5.3h
Vibe Coding: Advanced Engineering
12 lessons 路 7.3h
