Model object shapes with inline types, use optional properties, and catch missing/extra property mistakes.
0 / 6 (0%)
Arrays
Practice arrays of primitives and arrays of objects: map, filter, find, and immutable updates with clear types.
0 / 6 (0%)
Union & Litteral Types
Model finite sets with literal types, combine them using unions, and narrow safely with typeof, equality checks, and switch.
0 / 5 (0%)
Type Aliases
Name complex types once and reuse them: alias primitives, unions, functions, tuples, and object shapes for clearer, safer code.
0 / 6 (0%)
Interfaces
Describe object shapes with required, optional, and readonly properties; extend and merge interfaces; compare with type aliases and use index signatures.
0 / 6 (0%)
null & undefined
Handle nullable values with strict checks, defaulting, and optional chaining to write safe, clear code.
0 / 6 (0%)
Type Assertions
Tell TypeScript what a value is with 'as' or angle brackets; assert safely, work with unknown, and preview 'as const' for literal inference.
0 / 6 (0%)
any (vs unknown)
Avoid unsafe any; use unknown and narrow with checks. Practice safe parsing, arrays, records, and gradual typing tactics.
0 / 6 (0%)
Type Guards & Narrowing
Master narrowing with typeof, in, instanceof, array checks, custom predicates, and exhaustive switches using never.
0 / 6 (0%)
Functions: Call Signatures & Overloads
Write precise function types, overload behavior by input shape, use optional/rest params, and return the right types confidently.
0 / 6 (0%)
Object Types (Deep Dive)
Master intersections vs unions, refine object unions safely, and understand excess property checks and index signatures.
0 / 6 (0%)
Generics Fundamentals
Build reusable, type-safe code with type parameters, constraints, keyof relationships, and generic classes.
0 / 5 (0%)
Creating Types from Types (Utility Patterns)
Build new types from existing ones using Pick, Omit, Partial, Required, Readonly, Record, ReturnType, and Parameters.
0 / 7 (0%)
keyof, typeof & Indexed Access
Use keyof, typeof, and T[K] to connect values and types, derive unions of property names, and build safe access helpers.