We may earn an affiliate commission when you visit our partners.
Angular University

This course covers in-depth the Typescript language and includes several practical projects. It comes with a running Github repo.

This Course in a Nutshell

One of the biggest novelties in the Javascript frontend development space in the last few years is that the use of Typescript has become almost universal.

To the point that it almost does not make sense anymore to start a new project and not use Typescript, given its huge advantages, and almost no downsides.

And this includes projects not only in Node, but also in React, Angular, and any other Javascript-based frontend framework.

Read more

This course covers in-depth the Typescript language and includes several practical projects. It comes with a running Github repo.

This Course in a Nutshell

One of the biggest novelties in the Javascript frontend development space in the last few years is that the use of Typescript has become almost universal.

To the point that it almost does not make sense anymore to start a new project and not use Typescript, given its huge advantages, and almost no downsides.

And this includes projects not only in Node, but also in React, Angular, and any other Javascript-based frontend framework.

Typescript is a strongly typed language that is a superset of Javascript, meaning that Javascript programs are valid Typescript programs (depending on the settings we use for the compiler), but not the other way around.

So in a nutshell, this means that you can see Typescript as a better and improved version of Javascript.

But even though superficially similar, Typescript due to its powerful type system is actually a completely different language than Javascript.

The static type system of Typescript provides many advantages as it allows us to catch many program errors at development instead of at runtime, and it enables powerful development tooling such as precise auto-completion and different types of refactoring.

But to benefit from the power of the type system, we actually don't have to add type annotations everywhere and end up with code that looks like Java or C#, and sacrifice flexibility, development speed and readability.

The type system can automatically infer the types of most variables automatically, without us having to declare them explicitly, meaning that we can essentially write type-safe Javascript-like code with minimal type annotations.

This powerful type inference is really the killer language feature that makes Typescript the preferred way of starting both a frontend and a backend project today: we get all the benefits of a static type system essentially for free, with no downsides.

Course Overview

This course is divided into multiple sections, that you can take directly depending on your previous level of familiarity with the language. So there are multiple learning paths available for you, depending on your previous experience.

The course will start with a deep dive into all the language features starting with the most basic ones but covering also in detail the most advanced features.

So if you are already familiar with some of the features you can skip ahead, and focus only on the features that you aren't aware of yet.

We will present the language features from the most elementary ones to the most advanced, and we will cover first the features that are most commonly used.

For completeness, we will also cover a lot of features that are rarely used, but we will point that out explicitly, especially if it's a feature that you are very unlikely to ever use while coding at the application level.

Besides the language features, we are going to dedicate a full section to the configuration of the Typescript compiler, and go over every option you have available.

We will make it clear when a compiler feature is rarely needed when compared with features that you will be using all the time.

We will still cover everything for completeness, but we want to give you the option to focus only on the most commonly used compiler options if that is what you prefer.

After this initial section covering all language features, we are going to cover also in detail Object-oriented programming, Generics and Decorators, each in their own section.

These 3 sections are mostly independent of the rest of the course and can be taken separately.

After the language sections, we enter the part of the course that covers practical projects.

These practical projects are as close to what you would develop in the real world as possible. This means that these are still small projects that you can comfortably build without spending too much time, but they contain all the building blocks and illustrate all the same design elements that you would have to put in place in a real application.

For example, we are going to build a complete example of a REST API in Node using Typescript and TypeORM, a Typescript-friendly ORM for Node. The server will be designed will all the typical elements of a production system in mind.

For example, the API will be fully secure, and it will require the user to be properly authenticated with a JWT. The API will support multiple levels of access, from a read-only user to an admin user that can edit the data.

Next, once the backend is completed, we are going to build also a couple of frontends with Typescript, namely an Angular frontend, each one in its own separate project.

This way, you will have built your complete system (both frontend and backend) using only one single common language: Typescript.

Table of Contents

This course will go over the following topics:

  • Introduction to Typescript

  • The Typescript Type System

  • The most powerful feature of Typescript: type inference

  • In-depth coverage of all the Typescript language features, from the most simple to the most advanced

  • In-depth coverage of all the features available in the Typescript compiler

  • Object-oriented programming

  • Typescript Generics in depth

  • Typescript Decorators in depth

  • Practical Typescript Project  - Secure Node

    In this course, you will learn everything that you need to know to build both the backend and the frontend of your application using the same language: Typescript.

    You will know all the features of the language in-depth, and you will be aware of the distinction between the features that you will be using almost every day, from the features that you will only sparingly use.

    You will also know in detail the multiple features that you have available in the Typescript compiler.

    You will know how to build real-world projects with Typescript, including how to develop your backend with Node and Typescript, and also how to build your frontend in Typescript using modern frameworks.

    Have a look at the course free lessons below, and please enjoy the course.

Enroll now

What's inside

Learning objectives

  • Code in github repository with downloadable zip files per section
  • Learn the typescript language in depth, including it's most advanced features
  • Build practical real-world project in both the backend and the frontend
  • Every feature covered, including: object oriented programming, generics, decorators
  • Build a secure node rest api with express and typeorm

Syllabus

Introduction To Typescript
Typescript: The Ultimate Bootcamp - Helicopter View
IMPORTANT
Setting Up the Development Environment - Node, Git and IDE
Read more
Why Typescript? Understand the Key Benefits of the Language
Quiz - Understanding the benefits of the Typescript language
Compiling Your First Typescript Program
Quiz - Understand the basics of the Typescript compiler
The Typescript compiler noEmitOnError flag
Running a Typescript Program in a Browser
Deep Dive Into The Typescript Type System
Understanding the differences between const, let and var
Quiz - Understand the differences between const, let and var
Typescript primitive types - numbers, strings and booleans
Quiz - Primitive Types
Typescript Template Strings
Quiz - Template Strings
Understanding Type Inference - The most powerful feature of Typescript
When to use Typescript Type Annotations and Why
Quiz - Type Inference
Typescript Static Type System vs Javascript Dynamic Type System
Typescript Primitive Types - Objects
Typescript Nested Object Types
Understanding the Differences Between Null and Undefined
Quiz - Null vs Undefined
Typescript Optional Chaining - How To Avoid Null-Related Errors
Understanding The Typescript Null Coalescing Operator
Typescript Optional Chaining - Best Practices For When To Use It Or Not
Typescript Primitive Types - Arrays
Typescript Enums - Our First Custom Type
Understanding The Typescript Any Type - And Why You Should Avoid It
Avoid Implicit Any Types With The noImplicitAny Compiler Flag
Understanding Typescript Union Types - Nullable Variables
Typescript Non Null Assertion Operator
Typescript Strict Null Checks and the strictNullChecks Compiler Flag
Understanding Typescript Literal Types - When Are They Useful?
Understanding Typescript Type Aliases - Our First Custom Type
Typescript Interfaces - Defining Custom Object Types
Typescript Type Aliases vs Interfaces - When to Use Which And Why?
Understanding Typescript Type Assertions
Deep Dive Into Typescript Modules, Imports and Exports
Introduction To Typescript Modules - Exports and Imports
Typescript Module Re-Exports - Building an Import Barrel
Typescript Modules - Default Exports And The Import As Syntax
Typescript - Commonly Used Language Features
Arrow Functions vs Normal Functions - Understanding The This Context
Typescript Default Function Parameters
The Typescript Object Spread Operator
Typescript Object Destructuring
Typescript Array Spread and Destructuring Operators
Typescript Rest Function Arguments
Debugging Typescript In The Browser - Step-By-Step Tutorial
Debugging Typescript In Node - Step-By-Step Tutorial
Typescript Shorthand Object Creation Notation
Typescript Functions In Depth
Introduction to Typescript Functions
Typescript Functions At Runtime - Function Values
Typescript Custom Function Types
Typescript Advanced Language Features
Typescript Tuples - How To Use Them?
Understanding The Typescript Unknown Type
Understanding Typescript Type Narrowing and Type Predicates
Understanding Typescript Never Type
Typescript Intersection Types
Typescript Compiler Option In Depth (tsconfig.json)
Introduction to tsconfig.json - The target Property
Using a Custom Name for the Compiler Configuration File
Controlling What Files To Compile - The files tsconfig.json property
Controlling What Files To Compile - include and exclude
The tsconfig.json outdir and rootDir properties
The tsconfig.json module property
Choosing What Libraries To Include Wth tsconfig.json lib and nolib properties
Typescript Compiler baseUrl Option
Understanding typeRoots, types and the skipLibCheck Compiler Options
Including Plain Javascript in a Typescript project - allowJs and checkJs
Typescript Compiler - Miscellaneous Options
Object Oriented Programming in Typescript
Introduction To Typescript Classes
Writing Our First Typescript Class - The Constructor
Typescript Classes - Member Variables
Typescript Read-Only Class Member Variables
Typescript Getters and Setters
Does Typescript Support Multiple Constructors?
Understanding The This Keyword When Used In a Class
Understanding Typescript Static Variables
Understanding Typescript Static Class Methods
Introduction To Object Oriented Inheritance
The Extends Keyword - Creating a Child Class
Understanding the Protected Keyword
Typescript Abstract Classes
Objected-Oriented Interfaces
The Singleton In Typescript - An Object-Oriented Design Pattern
Typescript Generics In Depth
New Section - Introduction To Typescript Generics
Commonly Used Generic Libraries
The Typescript Optional Interface
The Typescript Read Only Interface
Introduction To Generic Functions
Generic Functions With Multiple Generic Parameters
Typescript Generics - Type Constraints and the extends Keyword

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers Typescript, which is a superset of Javascript, meaning that Javascript programs are valid Typescript programs, allowing for a smooth transition for Javascript developers
Teaches how to build both the frontend and backend of applications using Typescript, providing a unified language for full-stack development
Explores object-oriented programming, generics, and decorators, which are essential concepts for building scalable and maintainable software applications
Includes a practical project building a secure Node REST API with Express and TypeORM, which are valuable skills for backend development
Covers building frontends with Typescript, including an Angular frontend, providing practical experience with modern frontend frameworks
Presents language features from elementary to advanced, allowing learners to skip ahead based on their familiarity with the language

Save this course

Save Typescript Bootcamp: Beginner To Advanced (2024 Edition) to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Typescript Bootcamp: Beginner To Advanced (2024 Edition) with these activities:
Review JavaScript Fundamentals
Reinforce your understanding of core JavaScript concepts before diving into TypeScript. TypeScript builds upon JavaScript, so a solid foundation is essential.
Browse courses on JavaScript Fundamentals
Show steps
  • Review variables, data types, and operators in JavaScript.
  • Practice writing functions and working with objects.
  • Familiarize yourself with DOM manipulation and event handling.
Read 'Effective TypeScript'
Gain a deeper understanding of TypeScript best practices and advanced features. This book complements the course material and provides practical guidance.
View Effective Typescript on Amazon
Show steps
  • Read the book cover to cover, taking notes on key concepts.
  • Experiment with the code examples provided in the book.
  • Apply the principles learned to your own TypeScript projects.
Build a Simple To-Do App with TypeScript
Apply your TypeScript knowledge by building a practical project. This will help you solidify your understanding of the language and its features.
Show steps
  • Set up a new TypeScript project with a basic file structure.
  • Define the data structures for your to-do items using interfaces.
  • Implement functions to add, remove, and update to-do items.
  • Create a user interface to display and interact with the to-do list.
Four other activities
Expand to see all activities and additional details
Show all seven activities
TypeScript Coding Challenges on Exercism
Sharpen your TypeScript skills by solving coding challenges on Exercism. This will help you improve your problem-solving abilities and become more proficient in TypeScript.
Show steps
  • Create an account on Exercism and choose the TypeScript track.
  • Select a coding challenge and read the instructions carefully.
  • Write TypeScript code to solve the challenge.
  • Submit your solution and review feedback from other users.
Write a Blog Post on TypeScript Generics
Deepen your understanding of TypeScript generics by explaining the concept in your own words. Teaching others is a great way to reinforce your knowledge.
Show steps
  • Research and gather information on TypeScript generics.
  • Outline the key concepts and examples you want to cover.
  • Write a clear and concise blog post explaining generics.
  • Include code examples to illustrate the concepts.
  • Publish your blog post on a platform like Medium or Dev.to.
Read 'Programming TypeScript'
Expand your knowledge of advanced TypeScript concepts and techniques. This book provides a deeper dive into the language and its capabilities.
Show steps
  • Read the book and take notes on advanced TypeScript features.
  • Experiment with the code examples and try to apply them to your own projects.
  • Explore the more advanced topics like metaprogramming and type-level programming.
Contribute to a TypeScript Open Source Project
Gain real-world experience by contributing to an open-source TypeScript project. This will help you learn how to work with a team, write high-quality code, and contribute to the community.
Show steps
  • Find an open-source TypeScript project that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can work on.
  • Submit a pull request with your changes.
  • Respond to feedback from other contributors and revise your code as needed.

Career center

Learners who complete Typescript Bootcamp: Beginner To Advanced (2024 Edition) will develop knowledge and skills that may be useful to these careers:
Frontend Developer
A frontend developer builds the user interface of websites and web applications. This course helps a frontend developer to write robust and maintainable code by leveraging the power of Typescript, which is fast becoming a standard in frontend development. The course's focus on practical projects, including building frontends with frameworks like Angular, provides hands-on experience vital for a frontend developer. By understanding Typescript's static type system, type inference, and other advanced features, a frontend developer can greatly enhance their development workflow and produce fewer errors. The course also covers debugging, modules, and compiler options all of which are important in a frontend role.
Backend Developer
Backend developers are responsible for building the server-side logic of web applications and APIs. This course is geared toward backend development with its section on building a REST API with Node, Typescript, and TypeORM. The course provides a comprehensive understanding of Typescript, which is highly beneficial for a backend developer. The course includes instruction on how to build secure APIs. This skill is essential for any backend developer building production systems. Learning about object-oriented programming, generics, and decorators in Typescript also allows developers to write more structured, reusable, and scalable code.
Full-Stack Developer
A full stack developer works on both the frontend and backend of an application. This course helps a full stack developer by teaching them Typescript, which is used on both the frontend and the backend. The course's hands-on projects involving both frontend and backend development using Typescript are particularly valuable for someone in a full stack role. The course covers everything from basic to advanced Typescript features, which allows a developer to build highly scalable solutions using a single language. This course also covers modules, debugging, and compiler options, all of which are key for a full stack developer.
Software Engineer
Software engineers design, develop, and maintain software systems. This course helps a software engineer by providing a deep understanding of Typescript, a language increasingly used in modern software development. The course emphasizes practical projects, so a software engineer will gain real-world experience and build a foundation for designing robust systems. The course covers advanced features of Typescript, object-oriented programming, generics, and decorators. These skills help software engineers build complex and scalable applications. A software engineer who understands compiler options and how to debug code will contribute more to a team.
Web Developer
Web developers design and build websites and web applications. This course provides a comprehensive understanding of Typescript, which is now a common tool for web developers. The course's hands-on projects, including building both frontends and backends, are highly relevant for a web developer. Through this course, a web developer learns how to use Typescript in multiple scenarios including building a secure API with Node and developing frontends with Angular. By learning the intricacies of the language and how to configure the compiler, a web developer can create robust and maintainable web applications.
Application Developer
Application developers create software applications for various platforms. This course may be helpful for an application developer as it helps build a practical understanding of Typescript. The course focuses on building real world projects, including a REST API with Node and frontends with Angular. It also includes in-depth instruction on object-oriented programming, generics, and decorators. This course may help an application developer to build robust and maintainable applications. In addition, the focus on compiler options and debugging can help a developer to deliver higher quality applications.
API Developer
API developers specialize in building and managing Application Programming Interfaces. This course is directly relevant, as it includes a practical project on building a secure REST API using Node, Typescript, and TypeORM. An API developer will learn how to design, secure, and implement APIs using this course. The course dives into the intricacies of the Typescript compiler. This is important because API developers must have a deep understanding of how to write code that works reliably. An API developer can therefore use this course to build robust and secure APIs.
Software Development Engineer
A software development engineer is a role that involves designing, developing, and testing software systems. This course may be useful for a software development engineer as it covers Typescript, which is widely used in modern software. The course teaches best practices when building software with guidance on object-oriented programming and generics. Additionally, the course places emphasis on compiler configuration and debugging, which are essential skills for software development engineers. The course is useful because it uses practical projects to provide real-world experience.
Mobile Developer
Mobile developers build applications for mobile devices. This course may be useful for a mobile developer because Typescript can be used in mobile development with frameworks like React Native, and the course may provide a baseline in the language. By learning Typescript's type system, a mobile developer can write more robust and maintainable code. This course includes useful information on modules, debugging, and compiler options. These skills may be useful, as they help mobile developers create more efficient and reliable applications. The projects in this course do not directly apply to mobile development, but the language skills may be transferable.
Game Developer
Game developers create video games for various platforms. While this course does not focus directly on game development, the course may be useful because Typescript can be used with game engines like Phaser. Learning the strong typing and object-oriented features of Typescript may help a game developer write better code. This course also covers concepts in generics. It also delves into modules, debugging techniques, and the options available in the Typescript compiler, all of which may be beneficial to a game developer. These skills may help make the game development process smoother and more efficient.
Data Scientist
Data scientists analyze large datasets to extract insights and develop predictive models. While this course does not directly address data science, Typescript can be used in data visualization libraries and tools. A data scientist who takes this course may be better equipped to build custom tools and interfaces for their work. The course also covers practical projects, object-oriented programming, and debugging techniques which may provide a more generalized skill set. These skills may allow the data scientist to contribute code on a team.
Technical Writer
Technical writers produce documentation for software and technology products. This course may be useful because a technical writer needs to understand the technologies they document. By learning Typescript, a technical writer can better understand the code and concepts they are explaining. The course also covers the compiler options, which may help a technical writer to write more precise documentation. The course may also help them in understanding the design of APIs and how developers use them.
Technology Consultant
A technology consultant advises businesses on how to use technology to meet their goals. This course may be useful for a technology consultant as it provides a look into a popular technology being used by software teams. A technology consultant will learn about the features of the language as well as the configuration and options available. This course can help a technology consultant to better advise their clients. This course may be useful as a foundational piece of knowledge in understanding web application development.
Project Manager
Project managers oversee the planning, execution, and completion of technology projects. This course may be useful for a project manager as it offers insights into a popular technology being used in software teams. By learning about Typescript, a project manager may better understand the technical challenges and considerations that their team faces. The course discusses compiler options and debugging techniques, which may help a project manager in understanding the software development process. A project manager with technical proficiency may also be more effective in communicating with team members.
Product Manager
Product managers are responsible for defining the vision, strategy, and roadmap for a product. This course may be useful for product managers who work on software products as it provides a very practical, hands-on introduction to a popular technology in software development. By taking this course, a product manager may understand the technical capabilities of Typescript, along with the tradeoffs involved in adopting the language. The course on Typescript compiler and debugging may be useful to understanding the challenges of software development teams. The course can therefore help a product manager in making informed decisions.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Typescript Bootcamp: Beginner To Advanced (2024 Edition).
Provides practical advice on how to write better TypeScript code. It covers a wide range of topics, from basic type annotations to advanced techniques like generics and conditional types. It's a valuable resource for anyone who wants to master TypeScript and write robust, maintainable code. This book is commonly used by industry professionals.
Provides a comprehensive guide to TypeScript, covering everything from the basics to advanced topics like metaprogramming and type-level programming. It's a great resource for experienced developers who want to take their TypeScript skills to the next level. This book is commonly used as a textbook at academic institutions.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser