TypeScript for Application Developers

Go past annotations. Structural typing, narrowing, generics, and the type-level tools that make invalid states impossible.

popularIntermediate1h 54m4 modules22.1k students

What you’ll learn

  • Make invalid states unrepresentable

    Model your domain so the compiler rejects the combinations that should never happen.

  • Write real generics

    Build reusable functions and components that keep type information instead of erasing it.

  • Use the type-level toolkit

    Apply conditional, mapped, and template literal types where they earn their complexity.

  • Type the boundaries

    Validate and type the data crossing into your app, so external data stops being an any.

Tracklist

4 modules · 1h 54m

  1. 1How the Type System ThinksThe mental model underneath everything else: structural compatibility, unions, and narrowing.27m 47s
    1. Lesson 1.1Structural typing and assignabilityFree preview11m 49s
    2. Lesson 1.2Unions and narrowing10m 20s
    3. Lesson 1.3Literal types and const assertions5m 38s
  2. 2GenericsWriting code that keeps type information flowing through it instead of collapsing to any.23m 52s
    1. Lesson 2.1Generic functions and inference12m 52s
    2. Lesson 2.2Constraints and default type parameters4m 13s
    3. Lesson 2.3Generic components in React6m 47s
  3. 3Advanced TypesThe type-level features that let a type be computed from another type, and the judgement to use them sparingly.40m 23s
    1. Lesson 3.1Conditional types and infer14m 23s
    2. Lesson 3.2Mapped types and key remapping6m 49s
    3. Lesson 3.3Template literal types19m 11s
  4. 4TypeScript in PracticeConfiguration, external data, and the places typed code meets the untyped world.22m 56s
    1. Lesson 4.1tsconfig and strictness settings9m 53s
    2. Lesson 4.2Typing external data at the boundary7m 14s
    3. Lesson 4.3Declaration files and untyped packages5m 49s