Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udacity

TypeScript

via Udacity

Overview

This course provides a comprehensive introduction to the language and its integration with modern development practices. It starts with project configuration and progresses through core concepts such as primitive types, structural design, type narrowing, and function safety.

Syllabus

  • Introduction to TypeScript
    • Discover TypeScript's static typing to eliminate JavaScript runtime errors and build production-ready, type-safe apps, guided by hands-on projects and modern developer tooling.
  • Introduction to TypeScript Project Configuration
    • Learn how to set up TypeScript projects using tsconfig.json, strict mode, module settings like nodenext, and organize code with outDir, rootDir, and types for reliable development.
  • Apply TypeScript Project Configuration with Node.js
    • Configure TypeScript projects for Node.js with ESM, strict checks, proper tsconfig settings, and type safe Express routes for robust, error-free code before runtime.
  • Introduction to Primitive and Collection Types
    • Learn to use TypeScript's primitive types, type annotations, inference, arrays, tuples, and index signatures for safe and expressive data modeling.
  • Apply Primitive and Collection Types with TypeScript
    • Learn to use TypeScript's primitive and collection types—tuples, index signatures, and bracket notation—for type-safe, precise modeling of structured and dynamic data.
  • Introduction to Structural Type Design
    • Learn how TypeScript compares types by their shape and model data with interfaces, type aliases, intersection and union types, and discriminated unions for reliable state handling.
  • Apply Structural Type Design with TypeScript
    • Model data that arrives in several distinct shapes using discriminated unions, letting TypeScript narrow each variant and guarantee every case is handled correctly.
  • Introduction to Type Narrowing and Control Flow
    • Learn how TypeScript's control flow analysis narrows types with built-in type guards, custom type predicates, and assertion functions for safe handling of uncertain data.
  • Apply Type Narrowing and Control Flow with TypeScript
    • Write runtime checks TypeScript understands—custom type predicates and assertion functions—that narrow unknown external data into fully typed, safe-to-use values.
  • Introduction to Function Type Safety
    • Learn to type function contracts with parameter and return annotations, overloads, tuple-typed rest parameters, and async functions that return precisely typed Promises.
  • Apply Function Type Safety with TypeScript
    • Make functions safer at their boundaries by writing overloads that constrain how callers invoke them and refactoring callback code into clean, fully typed async/await.
  • Introduction to Generic Programming
    • Learn generics in TypeScript—type parameters, inference, constraints with extends, default type parameters, and multiple parameters—to write reusable yet fully typed code.
  • Apply Generic Programming with TypeScript
    • Write generic code—a data fetcher and a cache—that works across many types at once while preserving full type safety for every specific use.
  • Introduction to Advanced Type Transformations
    • Transform types with mapped and conditional types, key remapping, the infer keyword, and template literal types—the tools behind Pick, Omit, Record, and ReturnType.
  • Apply Advanced Type Transformations with TypeScript
    • Build your own utility types from scratch—mapped, conditional, and recursive transformations that reshape existing types entirely at compile time, without touching runtime code.
  • Introduction to Runtime Type Validation
    • Learn runtime validation with Zod—defining schemas that check external data and generate matching TypeScript types—using parse, safeParse, and refinements at system boundaries.
  • Apply Runtime Type Validation with Zod
    • Validate untrusted data at runtime with Zod, defining schemas that both check incoming values and automatically infer the matching TypeScript types from one source of truth.
  • Introduction to Full-Stack Type Safety
    • Learn full-stack type safety with Prisma and tRPC, flowing one set of types from database to frontend so a schema change surfaces as a compile error, not a runtime crash.
  • Apply Full-Stack Type Safety with Prisma and tRPC
    • Connect types across the stack with Prisma-style database access and a tRPC-style API layer, so the compiler catches request mismatches before they ever ship.
  • Introduction to Testing Type-Safe Code
    • Learn to test type-safe code with Jest, add type testing with expect-type, cover async Promises, and adopt type-driven TDD to catch the logic errors types can't.
  • Apply Testing Type-Safe Code with Jest
    • Write type-safe Jest tests that verify real behavior and mock external dependencies, so tests run fast, in isolation, and break at compile time when an interface changes.
  • Introduction to Clean Architecture Patterns
    • Learn Clean Architecture in TypeScript—domain, use case, and infrastructure layers with dependencies pointing inward through ports and dependency injection the compiler enforces.
  • Apply Clean Architecture Patterns with TypeScript
    • Build an application in clean-architecture layers—a pure domain of entities and use cases wired to interchangeable infrastructure adapters through dependency injection.
  • Course Conclusion
    • Reflect on the full journey from TypeScript project configuration to building full-stack, type-safe systems, and the production-ready habits and toolkit you've gained.
  • Dashy Analytics: Type-Safe User Management System
    • Build a type-safe user management and authentication module for Dashy Analytics, applying Clean Architecture and end-to-end type safety from a Prisma database to the frontend.

Taught by

Bruce Cantarim

Reviews

Start your review of TypeScript

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.