019 min
Why types exist
Catch bad assumptions early
MINI BUILDCreate typed variables for customerName, orderTotal and isPaid using string, number and boolean.
Checking saved progress…
029 min
Primitive types
Describe basic values
MINI BUILDType a small customer summary with name, age, totalSpend and subscribed fields.
Checking saved progress…
0311 min
Arrays & objects
Describe real data
MINI BUILDCreate a typed array of three courses containing title and minutes for each item.
Checking saved progress…
0411 min
Typed functions
Type inputs and outputs
MINI BUILDWrite a typed discount function that accepts price and percent as numbers and returns a number.
Checking saved progress…
0512 min
Type aliases & interfaces
Name reusable shapes
MINI BUILDDefine an interface called Course with id, title, minutes and completed, then type two variables with it.
Checking saved progress…
0612 min
Interfaces & extension
Compose domain contracts without duplication
MINI BUILDDefine a BaseRecord interface and extend it into a ProductRecord with price and stock.
Checking saved progress…
0712 min
Unions
Represent valid alternatives
MINI BUILDCreate a LessonStatus union with locked, current and complete, then type a variable with it.
Checking saved progress…
0813 min
Narrowing
Prove what a value is
MINI BUILDWrite a function that accepts string | number and returns a readable label after narrowing with typeof.
Checking saved progress…
0912 min
Optional & readonly fields
Model what may be absent and what must not change
MINI BUILDType an Order with readonly id, required total and optional customerNote.
Checking saved progress…
1015 min
Generics
Reuse types without losing meaning
MINI BUILDCreate a Box<T> type with a value field, then make one Box<string> and one Box<number>.
Checking saved progress…
1113 min
Utility types
Derive useful views of existing contracts
MINI BUILDCreate ProductSummary with Pick and ProductPatch with Partial/Omit from one Product interface.
Checking saved progress…
1214 min
Typing async results
Model success and failure at asynchronous boundaries
MINI BUILDWrite a typed async function returning Promise<number> and include a clear failure path.
Checking saved progress…
1314 min
React-oriented type mental models
Understand props and event boundaries without framework magic
MINI BUILDDefine a TaskRowProps type with title, completed and an optional onToggle callback.
Checking saved progress…
1413 min
Debugging compiler errors
Read type failures as failed assumptions
MINI BUILDCreate a small typed function, write one intentionally invalid call, and explain the compiler complaint in plain language.
Checking saved progress…