
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.
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.
Course content
8 Chapters • 37 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsTypeScript Fundamentals and Setup
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 2HideHide detailsSee detailsPrimitive Types and Type Annotations
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 3HideHide detailsSee detailsFunctions and Type Safety
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 4HideHide detailsSee detailsInterfaces and Object Types
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 5HideHide detailsSee detailsClasses and Object-Oriented TypeScript
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 6HideHide detailsSee detailsGenerics and Reusable Code
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 7HideHide detailsSee detailsAdvanced Types and Type Manipulation
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 8HideHide detailsSee detailsModules, Namespaces, and Project Architecture
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.
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...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.

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




















