← Languages

TypeScript

Full course · 21 lessons

TypeScript is JavaScript with static types. It catches errors at compile time, enables fearless refactoring, and powers the largest codebases in the world. These are the definitive free resources — vetted, current, and complete.

Knowledge Course
01

TypeScript Setup and Configuration

Install TypeScript, configure tsconfig.json, understand the compilation pipeline, and set up a development workflow.

45 min
02

Basic Types and Type Annotations

Primitive types, array types, tuple types, enum types, the any/unknown/never types, and type inference.

60 min
03

Functions and Function Types

Function type annotations, optional/default/rest parameters, overloads, this typing, and call signatures.

60 min
04

Object Types and Interfaces

Object type literals, interfaces, optional/readonly properties, index signatures, and interface extension.

60 min
05

Arrays, Tuples, and Enums

Array types, readonly arrays, tuple types with labels and spreads, const assertions, and enum best practices.

45 min
06

Union, Intersection, and Literal Types

Union types, intersection types, literal types, narrowing with typeof/in/instanceof, and discriminated unions.

60 min
07

Interfaces and Type Aliases Deep Dive

Interface merging, extending types, recursive types, mapped type modifiers, and conditional type constraints.

60 min
08

Generics: Basics and Constraints

Generic functions, generic constraints, generic interfaces, default types, and covariance/contravariance.

75 min
09

Keyof, Typeof, and Indexed Access Types

The keyof operator, typeof operator, indexed access types, and building type-safe lookup patterns.

45 min
10

Conditional and Mapped Types

Conditional types, infer keyword, distributive conditionals, mapped types, and template literal types.

75 min
11

Classes and Inheritance

Class type annotations, access modifiers, parameter properties, abstract classes, and implements clauses.

60 min
12

Modules and Declaration Files

ES modules, import/export syntax, ambient declarations, module augmentation, and writing .d.ts files.

60 min
13

Type Narrowing and Type Guards

User-defined type guards, assertion functions, the never type for exhaustiveness, and discriminated union patterns.

60 min
14

Utility Types and Satisfies

Built-in utility types (Partial, Required, Pick, Omit, Extract, Exclude, ReturnType), the satisfies operator, and Awaited.

45 min
15

Async/Await and Promise Typing

Typing async functions, Promise generics, async iterators, error handling patterns, and Promise.all/race/allSettled typing.

60 min
16

tsconfig.json Deep Dive

Compiler options explained: strict, moduleResolution, target, paths, type roots, project references, and build mode.

60 min
17

Advanced Type Patterns

Branded types, nominal typing patterns, type-safe builders, the `as const` pattern, and type-level programming.

75 min
18

React with TypeScript

Typing components, props, state, events, refs, hooks, context, and higher-order components with TypeScript.

75 min
19

Decorators and Mixins

Experimental decorators, legacy vs TC39 decorators, class/method/accessor/property decorators, and mixin patterns.

60 min
20

Performance and Compiler API

TypeScript performance optimization, incremental builds, const generics, the compiler API, and custom transformers.

60 min
21

Migration Patterns and Advanced Configuration

Migrating JS to TS gradually, allowJs, checkJs, strict mode adoption, path mapping, and monorepo patterns.

60 min
Curated Resources