← All learning paths

Typorithm learning path

TypeScript: designing types

Design correlated generic APIs using keyof, mapped, conditional, template literal and utility types. Prerequisite: TypeScript foundations. Finish with a typed event registry and runtime boundary.

16Focused modules
16Lessons to explore
48Typing drills
TypeScript: designing types course illustration

Study with a practical destination

Use the linked lessons in order, complete the lab and explain the decisions without the reference. Select the path and depth that match your role.

TypeScript: from foundations to a working React boundary

Before starting: JavaScript functions, objects, arrays and promises. Start with TypeScript foundations; the type-design course is a deliberate next stage, not a beginner prerequisite.

Build and explain: Validate unknown data, preserve useful type relationships and build a small typed React interface with independently tested state and filters.

  1. 1. 1. Static checking and a reproducible workspace
  2. 2. 4. Discriminated unions and exhaustive decisions
  3. 3. 5. Control-flow narrowing and honest guards
  4. 4. 9. Generics, constraints and preserved relationships
  5. 5. 10. keyof, typeof and indexed access
  6. 6. 16. Capstone: validate and filter a role catalogue
  7. 7. 3. Conditional types and distribution
  8. 8. 5. Mapped types and key remapping
  9. 9. 9. satisfies, const assertions and configuration
  10. 10. 16. Capstone: a correlated event registry
  11. 11. 1. Runtime decoding at an API boundary
  12. 12. 6. React props, children and DOM events
  13. 13. 7. Typed state, reducers, refs and effects
  14. 14. 16. Capstone: a typed role explorer

Review evidence: Complete the small warm-up before guided typing, attempt the independent task with hints, then compare the solution and acceptance cases. Optional stretches and the isolated 7.1 beta preview are additional study, not prerequisites for stable API and React work.

Your learning path

0 of 16 lessons completed

Saved on this device

01

Module 1 · 1 lessons

1. Assignability, unknown, any and never

Reason about sets of values and the deliberate limits of structural compatibility.

0/1 complete
02

Module 2 · 1 lessons

2. Generic inference and constraint design

Preserve caller information while giving implementations only the capabilities they need.

0/1 complete
03

Module 3 · 1 lessons

3. Conditional types and distribution

Distinguish per-member transformations from tests of an entire union.

0/1 complete
04

Module 4 · 1 lessons

4. infer, ReturnType and awaited results

Extract type structure without confusing a static pattern with runtime introspection.

0/1 complete
05

Module 5 · 1 lessons

5. Mapped types and key remapping

Transform related fields systematically while preserving their individual value types.

0/1 complete
06

Module 6 · 1 lessons

6. Template literal types and bounded vocabularies

Encode useful naming relationships without constructing unmanageable type combinations.

0/1 complete
07

Module 7 · 1 lessons

7. Utility types and shallow transformations

Choose standard helpers while keeping validation, serialization and nested ownership explicit.

0/1 complete
08

Module 8 · 1 lessons

8. Correlated unions and intersections

Keep a selected operation tied to the payload it can actually consume.

0/1 complete
09

Module 9 · 1 lessons

9. satisfies, const assertions and configuration

Check a configuration contract while retaining useful inferred information.

0/1 complete
10

Module 10 · 1 lessons

10. Const type parameters and variadic tuples

Preserve small literal sequences through reusable helpers without overcomplicating callers.

0/1 complete
11

Module 11 · 1 lessons

11. NoInfer and inferred type predicates

Control the source of inference and use evidence-preserving filters.

0/1 complete
12

Module 12 · 1 lessons

12. Callback variance and readonly boundaries

Understand safe substitution and recognize TypeScript’s intentional method exceptions.

0/1 complete
13

Module 13 · 1 lessons

13. Overloads, unions and generic API choices

Use the simplest signature that preserves the relationship callers actually need.

0/1 complete
14

Module 14 · 1 lessons

14. Branded identifiers and validated constructors

Prevent accidental identifier mixing without claiming authorization or runtime secrecy.

0/1 complete
15

Module 15 · 1 lessons

15. Recursive types, depth budgets and compiler cost

Use recursive transformations only with an explicit domain and practical limits.

0/1 complete
16

Module 16 · 1 lessons

16. Capstone: a correlated event registry

Build a small event dispatcher with validated entry points and matching payloads.

0/1 complete