← All paths
TypeScriptBeginner

TypeScript Essentials

Add types to JavaScript: write TypeScript and actually run it in your browser.

18 chapters68 lessons65 challenges

Course curriculum

Chapter 1: From JavaScript to TypeScript

  • ▸What is TypeScript
  • ▸Annotating types
  • ▸any and unknown

Chapter 2: Typed functions

  • ▸Typed functions
  • ▸Optional and default parameters
  • ▸Functions as a type
  • ▸Rest parameters and overloads

Chapter 3: Objects, interface and type

  • ▸Interface: the shape of objects
  • ▸type, optional and readonly
  • ▸Extending interfaces
  • ▸Index signatures

Chapter 4: Union, narrowing and literal types

  • ▸Union types and narrowing
  • ▸Literal types
  • ▸Advanced narrowing
  • ▸null, undefined and optional chaining

Chapter 5: Generics

  • ▸Generics: reusable code
  • ▸Constraints
  • ▸Generics in interfaces and types
  • ▸Defaults and multiple parameters

Chapter 6: Utility types

  • ▸Utility types: transforming types
  • ▸Pick, Omit, Record
  • ▸More utility types
  • ▸Utilities on functions

Chapter 7: Classes in TypeScript

  • ▸Classes and modifiers
  • ▸Inheritance, abstract and implements
  • ▸Getters, setters and static
  • ▸Generic classes

Chapter 8: Mapped types

  • ▸Mapped types
  • ▸keyof and indexed access
  • ▸Modifiers in mapped types
  • ▸Key remapping with as

Chapter 9: Conditional types and infer

  • ▸Conditional types
  • ▸infer: extracting a type
  • ▸Distributive conditionals
  • ▸infer in multiple positions

Chapter 10: Template literal types

  • ▸Template literal types
  • ▸Putting types together
  • ▸Transforming strings
  • ▸Patterns with keys

Chapter 11: Typed async

  • ▸Typed Promises and async/await
  • ▸Multiple Promises and errors
  • ▸Typing external data
  • ▸Typed errors

Chapter 12: tsconfig and strictness

  • ▸tsconfig.json
  • ▸strict mode
  • ▸Modules: import and export
  • ▸Type-only imports and .d.ts

Chapter 13: Patterns and best practices

  • ▸Discriminated unions
  • ▸Exhaustiveness with never
  • ▸The satisfies operator
  • ▸Avoiding any

Chapter 14: Type Challenges

Chapter 15: Decorators and metadata

  • ▸What a decorator is
  • ▸Class decorators
  • ▸Method decorators
  • ▸Field and accessor decorators

Chapter 16: Declaration files and merging

  • ▸Declaration files and declare
  • ▸Declaration merging
  • ▸Function and namespace merging
  • ▸Module and global augmentation

Chapter 17: Advanced type-level programming

  • ▸Recursive types
  • ▸Variadic tuple types
  • ▸Branded types
  • ▸Key remapping with as

Chapter 18: Senior TypeScript

  • ▸The satisfies operator
  • ▸const type parameters and as const
  • ▸Type-only imports and isolatedModules
  • ▸Type performance and project references

Ready to level up?

Create a free account and start now: earn XP on every challenge and climb the leaderboard.

TypeScript Essentials — LevelUpCode