Choose your language
TypeScript Programming Course
More than 2 million students worldwide

TypeScript Programming Course

Master TypeScript from the ground up and write safer, more maintainable JavaScript applications. This course covers everything from primitive types and interfaces to advanced generics and module architecture. You'll gain the practical skills employers look for in modern frontend and backend development.

Dedika for businesses

What you will learn:

You will learn how to configure the TypeScript compiler, annotate variables and functions with precise types, and model complex data using interfaces and classes. The course covers generics, utility types, and advanced type manipulation techniques including conditional and mapped types. You will also organise large codebases with ES modules, path aliases, and project references. Practical chapters address TypeScript in Node.js, React, and Vue, as well as testing, linting, and debugging workflows. By the end, you will be equipped to build and maintain production-grade TypeScript projects with confidence.

How you study in practice TypeScript Programming Course

How you practise TypeScript Programming Course

For companies looking to train their teams

With Dedika for businesses, the course includes exercises and examples tailored to your company and its specific needs.

Click here

Course content

8 Chapters • 37 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

TypeScript Fundamentals and Setup

  • Lesson 1 • Writing and Compiling Your First Program

    A simple typed program is written, compiled, and executed to confirm the environment works. Students observe how type errors surface before runtime.

  • Lesson 2 • Installing and Configuring the Toolchain

    Node.js, npm, and the TypeScript compiler are installed and verified. Students create a project scaffold used throughout the course.

  • Lesson 3 • What TypeScript Is and Why It Matters

    TypeScript's relationship to JavaScript, its compile-to-JS model, and the benefits of static typing are introduced. This context motivates every subsequent language feature.

  • Lesson 4 • Core tsconfig Options Explained

    Key compiler options such as target, module, strict, and outDir are examined. Proper configuration prevents common compile-time errors from the start.

Chapter 2See details

Primitive Types and Type Annotations

  • Lesson 1 • Type Aliases and Union Types

    Custom named types and union combinations allow flexible yet safe variable definitions. Students model real-world data that can hold multiple forms.

  • Lesson 2 • Arrays and Tuple Types

    Typed arrays and fixed-length tuples are declared and manipulated. These structures underpin collections used in every subsequent chapter.

  • Lesson 3 • Special Types: null, undefined, void, never

    Edge-case types that represent absence, no return, or impossible states are defined and contrasted. Understanding these prevents null-reference bugs in later code.

  • Lesson 4 • Literal Types and Enums

    Literal string and numeric types constrain values to exact sets, while enums group named constants. Both techniques reduce magic strings and numbers in codebases.

  • Lesson 5 • Primitive Types: string, number, boolean

    The three most common primitives are annotated on variables and function signatures. Correct annotation habits established here carry through every later chapter.

Chapter 3See details

Functions and Type Safety

  • Lesson 1 • Typing Function Parameters and Return Values

    Every parameter and return value is explicitly annotated to prevent misuse. This section establishes the discipline applied to all functions in the course.

  • Lesson 2 • Function Overloads

    Overload signatures allow one function to accept multiple distinct call shapes safely. Students implement overloads to replace unsafe any-based polymorphism.

  • Lesson 3 • Function Types and Signatures

    Functions are treated as first-class values with their own type signatures. Students pass and return typed functions in callbacks and higher-order patterns.

  • Lesson 4 • Arrow Functions and Method Signatures

    Arrow function syntax is typed consistently with regular functions, and method signatures inside objects are annotated. This prepares students for interface and class work.

Chapter 4See details

Interfaces and Object Types

  • Lesson 1 • Nested and Recursive Object Types

    Complex data structures with nested objects and self-referential shapes are typed safely. This skill is essential for modelling trees, graphs, and API responses.

  • Lesson 2 • Defining Interfaces

    Interfaces declare the shape of objects with named properties and their types. They form the primary contract mechanism used throughout TypeScript codebases.

  • Lesson 3 • Interface Extension and Merging

    Interfaces extend other interfaces to build hierarchies, and declaration merging adds properties across files. Students leverage both to model complex domain objects.

  • Lesson 4 • Object Type Literals vs. Interfaces

    The practical differences between inline object types and named interfaces are compared. Students choose the right tool based on reusability and extensibility needs.

Chapter 5See details

Classes and Object-Oriented TypeScript

  • Lesson 1 • Access Modifiers and Encapsulation

    public, private, protected, and readonly modifiers control member visibility and mutability. Proper encapsulation prevents unintended state mutation across class hierarchies.

  • Lesson 2 • Static Members and Mixins

    Static properties and methods belong to the class itself rather than instances, and mixins compose behaviour across unrelated classes. Both patterns appear frequently in large codebases.

  • Lesson 3 • Inheritance and Method Overriding

    Subclasses extend base classes and override methods with compatible signatures. Students build a multi-level hierarchy and observe how TypeScript enforces override correctness.

  • Lesson 4 • Abstract Classes and Interfaces

    Abstract classes define partial implementations that subclasses must complete, while interfaces define pure contracts. Students choose between them based on design requirements.

  • Lesson 5 • Class Syntax and Typed Properties

    Class fields, constructors, and methods are fully annotated with types. Students see how TypeScript enforces property initialisation and method signatures.

Chapter 6See details

Generics and Reusable Code

  • Lesson 1 • Generic Constraints

    The extends keyword constrains type parameters to shapes that possess required properties. Constraints prevent runtime errors while preserving generic flexibility.

  • Lesson 2 • Utility Types Built on Generics

    Built-in utility types such as Partial, Required, Readonly, Pick, and Omit are applied to transform existing types. Students recognise these as generic patterns they can replicate.

  • Lesson 3 • Generic Interfaces and Type Aliases

    Interfaces and type aliases accept type parameters to describe reusable data shapes. Students build generic container and response types used across modules.

  • Lesson 4 • Generic Functions

    Type parameters are added to functions so callers supply the concrete type at use. Students replace any-based utilities with fully type-safe generic equivalents.

  • Lesson 5 • Generic Classes

    Classes parameterised with type variables create reusable data structures such as stacks and queues. Students implement a typed generic collection from scratch.

Chapter 7See details

Advanced Types and Type Manipulation

  • Lesson 1 • Mapped Types

    Mapped types iterate over union keys to transform every property of an existing type. Students build custom utility types equivalent to the built-in helpers.

  • Lesson 2 • Type Inference with infer and ReturnType

    The infer keyword extracts type components from complex types inside conditional branches. Students build utilities that derive parameter and return types automatically.

  • Lesson 3 • Discriminated Unions and Exhaustiveness

    Tagged union types with a shared discriminant property enable safe, exhaustive pattern matching. Students model state machines and API responses with zero unsafe casts.

  • Lesson 4 • Template Literal Types

    String types are constructed programmatically by combining literal types with template syntax. Students type event names, CSS properties, and API routes at the type level.

  • Lesson 5 • Conditional Types

    The T extends U ? X : Y syntax enables types that branch based on assignability. Students use conditional types to extract, exclude, and transform type information.

Chapter 8See details

Modules, Namespaces, and Project Architecture

  • Lesson 1 • Declaration Files and DefinitelyTyped

    d.ts files describe the types of JavaScript libraries that lack built-in TypeScript support. Students consume community types and author minimal declarations for untyped packages.

  • Lesson 2 • Namespaces and Legacy Module Patterns

    Namespaces group related declarations under a single identifier, a pattern common in older codebases. Students recognise namespace code and migrate it to ES modules.

  • Lesson 3 • ES Module Syntax in TypeScript

    import and export statements are typed and configured for various module systems. Students understand how TypeScript resolves modules and emits compatible JavaScript.

  • Lesson 4 • Module Resolution and Path Aliases

    TypeScript's module resolution algorithms and tsconfig path mappings eliminate brittle relative imports. Students configure aliases that survive project restructuring.

  • Lesson 5 • Monorepo and Multi-Package Projects

    Project references and composite builds enable incremental compilation across multiple packages. Students configure a two-package monorepo with shared types.

Certification

Your valid completion certificate

This course is for you:

  • JavaScript developer: wants to stop guessing types and start enforcing them.

  • Frontend engineer: needs TypeScript fluency to contribute to React or Vue teams.

  • Backend developer: building Node.js services and tired of silent runtime failures.

  • Bootcamp graduate: ready to move beyond tutorials into professional-grade tooling.

  • Career changer: transitioning into software development and targeting typed codebases.

  • Freelance developer: wants to offer TypeScript expertise to higher-paying clients.

What our students say

Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top qualifications

FAQ

Who is Dedika?

Is the certificate valid in South Africa?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course