← 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