0Pricing
TypeScript Academy icon

TypeScript Academy

TYPESCRIPTFrontendWebBackendMobileGamesBeginnerAndroidIosEnterpriseDesktopScripting

Enhance your JavaScript projects with TypeScript through lessons at TypeScript Academy.

🤖 AI-Powered📚 101 courses👥 100,000+ learners⭐ 4.9 rating
Course Overview

TypeScript: Static Typing for the Entire JavaScript Ecosystem

TypeScript is the language Microsoft ships, Google uses at scale, and most modern React, Node.js, and Next.js projects adopt by default. It compiles to plain JavaScript while adding a static type system that catches whole classes of bugs before runtime — mismatched API responses, null access on optional fields, wrong function signatures, and more. This track covers TypeScript from first types through compiler internals, across 106 courses that span every level from A1 to C2.

What You Will Learn

You will start with string, number, boolean, unknown, and never, then build up through interfaces, type aliases, union and intersection types, generics, and utility types like Partial, Pick, Omit, and Record. Intermediate topics include type narrowing and type guards, discriminated unions, mapped types, template literal types, decorators, and runtime validation with Zod. You will apply TypeScript to real stacks — React props and hooks, Express APIs, Node.js, Next.js, GraphQL, tRPC, and type-safe ORMs. Advanced courses cover conditional types, the infer keyword, recursive and self-referential types, branded/nominal types, variadic tuples, authoring declaration files, and end-to-end type safety across monorepos with project references.

The Learning Path

The 106 courses run from A1 through C2 in a continuous progression. A1 and A2 courses establish the fundamentals: basic types, functions, arrays, tuples, enums, readonly, optional chaining, and nullish coalescing. B1 introduces classes, modules, strict mode, tsconfig best practices, generics, and working safely with DOM and Fetch APIs. B2 pushes into advanced generics with constraints and conditional types, decorators, testing with Jest, monorepo setup, and migration from JavaScript. C1 courses cover recursive types, the infer keyword and complex conditional types, writing custom utility types, type-level programming fundamentals, type-safe internationalization, and advanced React patterns. The track ends at C2 with TypeScript Compiler API internals, type-level arithmetic, higher-kinded type simulation, building type-safe parsers, constructing DSLs with TypeScript types, and Effect-TS.

How It Works

Each course is split into short, focused lessons you complete in the built-in code editor with real-time feedback. An AI tutor is available whenever you get stuck, and every concept is reinforced immediately with hands-on exercises rather than passive reading.

Start Learning →

How You'll Learn

🎯
Interactive Lessons
Hands-on coding exercises with real-time feedback
🤖
AI Tutor
Get instant help from our AI when you're stuck
💻
Built-in Editor
Write and run code directly in your browser
🏆
Certificate
Earn a certificate when you complete the course
Curriculum

101 Courses

Every course in the TypeScript Academy learning path.

01

Introduction to TypeScript

A13 lessons

This course introduces you to TypeScript, a powerful language that builds on JavaScript by adding types. You'll learn what TypeScript is, w…

02

TS Kickoff: Concepts & Setup

A13 lessonsPRO

Start TypeScript with clear concepts, a tiny setup, and your first build/run. Learn why TS improves safety and developer experience.

03

TypeScript vs JavaScript: Why Types Matter

A14 lessonsPRO

Discover why TypeScript was created, how static typing helps catch bugs early, and when to choose TypeScript over plain JavaScript.

04

Basic Types: string, number, boolean, any, unknown

A14 lessonsPRO

Master TypeScript's core primitive types, understand the dangers of any, and learn how unknown is safer.

05

Types & Variables Essentials

A13 lessonsPRO

Learn how TypeScript variables and types work: primitives, inference, and annotations.

06

Arrays, Tuples and Enums in TypeScript

A24 lessonsPRO

Learn how to type arrays, define fixed-length tuples, and use enums for named constant sets.

07

Functions and Type Annotations

A24 lessonsPRO

Learn how to annotate function parameters and return types, use optional parameters, and write arrow functions with TypeScript.

08

Literal Types and const Assertions

A24 lessonsPRO

Lock values to exact types using literal types and const assertions for precise, self-documenting code.

09

The unknown, never, and void Types

A24 lessonsPRO

Master TypeScript's special types for safe handling of uncertainty, impossibility, and absence.

10

Type Assertions and Casting

A24 lessonsPRO

Tell the compiler what you know with type assertions — and learn when they are safe versus dangerous.

11

Optional Chaining and Nullish Coalescing

A24 lessonsPRO

Write concise, null-safe code with optional chaining and nullish coalescing operators.

12

readonly and Immutability Basics

A24 lessonsPRO

Prevent accidental mutation by marking properties, arrays, and structures as readonly.

13

Interfaces and Type Aliases

A24 lessonsPRO

Define object shapes with interfaces and type aliases, understand their differences, and use them to enforce contracts.

14

Union and Intersection Types

A24 lessonsPRO

Combine types flexibly using union (|) and intersection (&) operators to model real-world data structures.

15

Destructuring with Type Annotations

A24 lessonsPRO

Annotate destructured values correctly and avoid the common pitfalls of typed destructuring.

16

Rest and Spread with Types

A24 lessonsPRO

Type variadic functions, spread operations, and rest elements for flexible, safe APIs.

17

Control Flow & Functions Basics

A23 lessonsPRO

Master basic control flow in TypeScript: if/else, switch, loops, and the difference between truthy checks and strict comparisons.

18

Course A1.4 — Objects & Interfaces I

A23 lessonsPRO

Learn how to model objects in TypeScript: object types, optional and readonly properties, and index signatures.

19

Course A1.5 — Arrays, Tuples, Enums

A23 lessonsPRO

Explore TypeScript collections: arrays, tuples, and enums. Learn how to use them effectively and safely with type annotations.

20

Classes and Access Modifiers

B14 lessonsPRO

Build object-oriented TypeScript with classes, constructors, and access modifiers like public, private, and protected.

21

Type Narrowing and Type Guards

B14 lessonsPRO

Learn how TypeScript narrows types in conditional blocks using typeof, instanceof, and custom type guard functions.

22

Generics Basics in TypeScript

B14 lessonsPRO

Write reusable, type-safe functions and data structures with TypeScript generics using type parameters.

23

Modules and Namespaces in TypeScript

B14 lessonsPRO

Organize TypeScript code with ES modules, re-exports, and understand when to use namespaces.

24

Index Signatures and Dynamic Objects

B14 lessonsPRO

Type objects with unknown keys using index signatures while keeping safety guarantees.

25

typeof and keyof Operators

B14 lessonsPRO

Derive types from existing values and keys using TypeScript's powerful type operators.

26

Type-Safe String Patterns

B14 lessonsPRO

Use template literal types to model structured strings and enforce string formats at compile time.

27

Utility Types: Partial, Required, Pick, Omit, Record

B14 lessonsPRO

Master TypeScript's built-in utility types to transform and compose types without repeating yourself.

28

Error Handling Patterns in TypeScript

B14 lessonsPRO

Go beyond try/catch with typed error hierarchies, Result types, and safe error propagation in TypeScript applications.

29

Strict Mode and tsconfig Best Practices

B14 lessonsPRO

Unlock TypeScript's full power with strict mode, understand every strict flag, and configure tsconfig for real-world projects.

30

Runtime Validation with Zod

B14 lessonsPRO

Bridge compile-time and runtime safety by validating external data with Zod schemas.

31

Type-Safe Configuration Management

B14 lessonsPRO

Validate and type application configuration and environment variables to fail fast on misconfiguration.

32

Narrowing & Type Guards I

B13 lessonsPRO

Learn how TypeScript narrows types using typeof , equality checks , and truthiness rules to write safer code.

33

Functions II & Overloads

B13 lessonsPRO

Dive deeper into functions: overloads, call signatures, and expressive API design.

34

Generics I: Functions

B13 lessonsPRO

Write reusable functions with generics . Constrain type parameters, set defaults, and keep inference strong.

35

Generics II: Types & Interfaces

B13 lessonsPRO

Model reusable shapes with generic interfaces and type aliases . Learn constraints, defaults, and differences.

36

Modules & Declarations

B13 lessonsPRO

Master ES Modules in TypeScript: named vs default exports, imports, and re-export patterns (barrels) for clean APIs.

37

TS + DOM

B13 lessonsPRO

Use TypeScript with the browser DOM: DOM library types, querySelector, strict null checks, events, and common patterns.

38

Fetch & JSON Safely

B12 lessonsPRO

Learn to use fetch with strong typing, parse JSON with generics, and ensure safe handling of API responses.

39

Linting & Formatting

B13 lessonsPRO

Keep TypeScript projects clean with ESLint and formatting tools. Enforce consistency, catch bugs early.

40

Advanced Generics: Constraints and Conditional Types

B24 lessonsPRO

Go beyond basic generics with keyof constraints, conditional type logic, and distributive generic patterns.

41

Mapped Types and Template Literal Types

B24 lessonsPRO

Transform existing types programmatically with mapped types and build string-pattern types using template literals.

42

Decorators in TypeScript

B24 lessonsPRO

Learn experimental class decorators and how frameworks like NestJS and Angular use them for metadata-driven programming.

43

TypeScript with React: Props and Hooks

B24 lessonsPRO

Type React components, props, event handlers, and hooks correctly to build reliable React applications with TypeScript.

44

TypeScript with Node.js and Express

B24 lessonsPRO

Set up TypeScript in a Node.js project, type Express routes and middleware, and handle request/response objects safely.

45

Type-Safe API Clients in TypeScript

B24 lessonsPRO

Build fully typed HTTP clients, validate API responses at runtime, and use tools like Zod and OpenAPI codegen.

46

Testing TypeScript with Jest

B24 lessonsPRO

Configure Jest for TypeScript, write type-safe tests, mock modules correctly, and use expectTypeOf for type assertions.

47

Discriminated Unions and Exhaustiveness

B24 lessonsPRO

Model variant data with discriminated unions and guarantee complete handling with exhaustiveness checks.

48

The satisfies Operator

B24 lessonsPRO

Validate values against a type while keeping their narrow inferred type using satisfies.

49

Type-Safe Event Systems

B24 lessonsPRO

Build strongly typed event emitters where event names and payloads are checked at compile time.

50

Type-Safe Builder Pattern

B24 lessonsPRO

Implement fluent builders that enforce required steps and valid construction order through the type system.

51

Functional Programming Patterns in TS

B24 lessonsPRO

Apply functional techniques — currying, composition, and pipelines — with full type inference.

52

Dependency Injection in TypeScript

B24 lessonsPRO

Decouple components with dependency injection and type-safe IoC containers.

53

Result and Option Types

B24 lessonsPRO

Replace thrown exceptions with explicit Result and Option types for predictable error handling.

54

Advanced Types

B24 lessonsPRO

Dive deeper into TypeScript’s type system. This category covers arrays, tuples, unions, intersections, enums, and literal types, helping yo…

55

Async & Promises

B23 lessonsPRO

Work confidently with Promise<T> and async/await : types, chaining, and error handling.

56

TS + Node.js

B22 lessonsPRO

Learn how TypeScript works with Node.js: typings, module systems (ESM vs CJS), and practical setup.

57

tsconfig Deep Dive

B23 lessonsPRO

Master TypeScript compiler options: strictness flags, module/output settings, and project structure.

58

Build & Bundlers

B23 lessonsPRO

Understand how tsc emit works, when to use --noEmit, and how bundlers integrate with TypeScript.

59

Testing with TS

B23 lessonsPRO

Test TypeScript with modern runners. Set up Vitest and Jest correctly for fast, reliable feedback.

60

Monorepo Setup with TypeScript

B24 lessonsPRO

Configure a TypeScript monorepo using project references, path aliases, and package managers like pnpm workspaces.

61

TypeScript with GraphQL

B24 lessonsPRO

Generate TypeScript types from GraphQL schemas, write typed resolvers, and use codegen tools for end-to-end type safety.

62

Type-Safe State Management

B24 lessonsPRO

Apply TypeScript to state management patterns in Redux Toolkit, Zustand, and XState for predictable application state.

63

Migration: JavaScript to TypeScript

B24 lessonsPRO

Adopt TypeScript incrementally in an existing JavaScript codebase using allowJs, JSDoc types, and safe migration strategies.

64

TypeScript 5.x New Features

B24 lessonsPRO

Explore the latest TypeScript 5.x features including decorators, const type parameters, variadic tuple improvements, and more.

65

End-to-End Type Safety with tRPC

B24 lessonsPRO

Share types automatically between client and server with tRPC for fully type-safe APIs.

66

React + TypeScript Fundamentals

B23 lessonsPRO

Learn React with TypeScript: strongly-typed props, events, refs, and safe component patterns for real-world apps.

67

Express + TS API

B23 lessonsPRO

Build typed REST APIs with Express and TypeScript: accurately typed handlers, params, bodies, and JSON responses.

68

Next.js + TS Essentials

B23 lessonsPRO

Next.js App Router with TypeScript: server vs client components, typed route handlers, and safe data passing.

69

Interop with JS & JSDoc

B21 lessonPRO

Use TypeScript in JavaScript projects via JSDoc. Turn on checking with // @ts-check , annotate with JSDoc, and migrate safely.

70

Course D2.2 — Runtime Safety

B22 lessonsPRO

Runtime data safety with TypeScript: validate inputs using zod/valibot, infer types from schemas, and propagate safe shapes across your app.

71

Course D2.3 — Error Handling Patterns

B22 lessonsPRO

Adopt robust error handling: Result/Either types, discriminated unions, and exhaustive checks to avoid silent failures.

72

Recursive and Self-Referential Types

C14 lessonsPRO

Define types that reference themselves to model trees, nested JSON, and linked structures.

73

Advanced TypeScript Concepts - I

C14 lessonsPRO

Take your TypeScript skills to the next level with advanced concepts like generics, utility types, and type guards. This category helps you…

74

Advanced TypeScript Concepts - II

C13 lessonsPRO

Understand how TypeScript infers types and makes your code more efficient by reducing the need for explicit type annotations. Explore how c…

75

Advanced TypeScript Concepts - III

C13 lessonsPRO

The TypeScript Advanced Features delves into the cutting-edge capabilities of TypeScript, offering tools to craft more efficient, flexible,…

76

Advanced TypeScript Concepts - IV

C13 lessonsPRO

This course explores sophisticated tools and techniques to make your TypeScript projects more robust, flexible, and maintainable. From ensu…

77

Advanced TypeScript Concepts - V

C13 lessonsPRO

The course dives into powerful concepts that enhance your ability to write efficient, flexible, and robust TypeScript code. From mastering…

78

Advanced Type Inference in TypeScript

C14 lessonsPRO

Understand how TypeScript infers types in complex scenarios including contextual typing, widening, and freshness.

79

The infer Keyword and Complex Conditional Types

C14 lessonsPRO

Master the infer keyword to extract types from conditional type positions and build powerful type-level utilities.

80

Writing Custom Utility Types

C14 lessonsPRO

Design and implement your own reusable utility types using mapped types, conditional types, infer, and recursion.

81

TypeScript Performance Optimization

C14 lessonsPRO

Diagnose and fix slow TypeScript compilation with profiling tools, type simplification, and strategic use of declarations.

82

Type-Level Programming Fundamentals

C14 lessonsPRO

Treat TypeScript's type system as a programming language to compute new types from existing ones.

83

Type-Safe ORMs and Query Builders

C14 lessonsPRO

Understand how modern ORMs like Drizzle infer query result types directly from your schema.

84

Advanced Decorators and Metadata

C14 lessonsPRO

Use the modern Stage 3 decorators and metadata reflection to build powerful framework-level abstractions.

85

Type-Safe Internationalization

C14 lessonsPRO

Build i18n systems where translation keys and interpolation variables are checked at compile time.

86

Advanced Narrowing & Control Flow

C13 lessonsPRO

Dive into advanced narrowing: exhaustive switches, never checks, predicate functions, and the satisfies operator.

87

Conditional Types & infer

C13 lessonsPRO

Master conditional types and the infer keyword. Build reusable utilities and understand distribution over unions.

88

Mapped & Template Literal Types

C13 lessonsPRO

Learn mapped types and template literal types to build flexible reusable abstractions in TypeScript.

89

Variadic Tuples & Generics

C13 lessonsPRO

Leverage variadic tuples and generics to build flexible function types: rest elements, curry helpers, and safe composition.

90

Nominal/Branded Types

C13 lessonsPRO

Use branded (opaque) types to avoid mixing values that share shapes (e.g., meters vs seconds, UserId vs OrderId). Gain safety without runti…

91

React + TS Advanced

C11 lessonPRO

Advanced React patterns with TypeScript: polymorphic components, typed refs, and flexible APIs without sacrificing safety.

92

React + TS Advanced

C12 lessonsPRO

Advanced React patterns with TypeScript: polymorphic components, typed refs, and flexible APIs without sacrificing safety.

93

Authoring Declaration Files

C12 lessonsPRO

Learn how to create and publish TypeScript declaration files (.d.ts). Write accurate ambient types, distinguish between export type and exp…

94

Monorepos & Project References

C11 lessonPRO

Set up a TypeScript monorepo with workspaces and Project References. Speed up builds, enable incremental tsc -b , and share types safely ac…

95

Strictness in Real Projects

C12 lessonsPRO

Raise TypeScript strictness safely: remove any , prefer unknown + narrowing, enable strict flags progressively, and add lightweight guards.

96

TypeScript Compiler API

C24 lessonsPRO

Use TypeScript's public compiler API to analyze, transform, and generate TypeScript code programmatically.

97

Type-Level Arithmetic and Counting

C24 lessonsPRO

Perform numeric computation entirely within the type system using tuples and recursion.

98

Higher-Kinded Types Simulation

C24 lessonsPRO

Work around TypeScript's lack of higher-kinded types with the lightweight HKT encoding.

99

Building Type-Safe Parsers

C24 lessonsPRO

Parse structured strings at the type level using template literals and recursive inference.

100

Building DSLs with TypeScript Types

C24 lessonsPRO

Design embedded domain-specific languages whose validity is enforced entirely by the type system.

101

Effect Systems and Effect-TS

C24 lessonsPRO

Manage side effects, errors, and dependencies explicitly with the Effect library's powerful type system.

FAQ

Frequently Asked Questions

Is the TypeScript Academy course free?

Yes. You can start the TypeScript Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.

Do I need prior experience to learn TYPESCRIPT?

No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior TYPESCRIPT experience.

How will I learn TYPESCRIPT on CoddyKit?

You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.

Do I get a certificate for completing TypeScript Academy?

Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the TypeScript Academy course.

Can I learn TYPESCRIPT on my phone?

Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn TYPESCRIPT on any device and your progress syncs across them.

Start TypeScript Academy Now

Join thousands of learners mastering programming with AI-powered lessons.

Get Started Free →Browse All Courses