Getting Started: TypeScript

Get started with learning the TypeScript programming language

About This Course

TypeScript is one of the most popular programming languages right now, and for good reason. It's a highly versatile language that can be used for developing both frontend and backend applications. Knowing TypeScript can make you a well-rounded full-stack developer who can create beautiful frontends with libraries like React or Vue and powerful backends. TypeScript knowledge also allows you to create cross-platform mobile applications using React Native. In this course, legendary TypeScript and React developer Cory House will teach you everything you need to know to get you started with TypeScript and make learning a new language as easy as possible. This course contains tens of exercises to learn by doing, which is always the best way to learn.

Course Curriculum

3h 32m 9 sections
Welcome
00:18 Free preview
What will you learn in this course?
00:32 Free preview
Who is the course for and prerequisites
00:43 Free preview
Why TypeScript?
03:15
Course Setup
00:36
tsc
04:21
Using TypeScript without a compiler
01:37
Bun Intro
01:50
tsconfig Intro
02:25
Course workflow
01:27
Primitive Types
03:25
Exercise: Primitive Types
00:27
Answers: Primitive Types
01:59
Type arrays and Tuples
02:21
Exercise: Type arrays and Tuples
00:39
Answers: Type arrays and Tuples
01:01
Typing objects
04:44
Exercise: Typing objects
00:51
Answers: Typing objects
01:13
Any
03:45
Exercise: Any
00:36
Answers: Any
01:15
Unknown
02:05
Exercise: Unknown
00:24
Answers: Unknown
01:29
Never
02:25
Exercise: Never
00:44
Answers: Never
01:05
Union Types
04:52
Exercise: Union Types
01:00
Answers: Union Types
01:47
Discriminated Unions
03:01
Exercise: Discriminated Unions
00:19
Answers: Discriminated Unions
01:25
Intersections
02:19
Exercise: Intersections
00:15
Answers: Intersections
00:27
Optional Fields on objects
03:13
Exercise: Optional Fields on objects
00:07
Answers: Optional Fields on objects
00:19
readonly and as
03:02
Exercise: readonly and as
00:24
Answers: readonly and as
00:39
Enums and Alternatives
08:11
Exercise: Enums and Alternatives
00:59
Answers: Enums and Alternatives
01:29
Type only features
02:52
Interface only features
01:17
Type and interface interactions
01:15
Summary: Types vs interfaces
00:28
Record
01:26
Exercise: Record
00:36
Answers: Record
00:33
Structural vs Nominal Types
04:03
Exercise: Structural vs Nominal Types
00:17
Answers: Structural vs Nominal Types
00:40
Typing Functions Basics
04:26
Exercise: Typing Functions Basics
00:34
Answers: Typing Functions Basics
01:13
Optional args
03:00
Exercise: Optional args
00:10
Answers: Optional args
00:15
Function overloads
02:53
Exercise: Function overloads
00:15
Answers: Function overloads
01:00
Rest params
02:08
Exercise: Rest params
00:44
Answers: Rest params
00:40
Declaring this
02:05
Exercise: Declaring this
00:41
Answers: Declaring this
01:24
What's a module?
03:23
Module resolution options
04:24
Exporting and importing types
04:16
Exercise: Exporting and importing types
00:45
Answers: Exporting and importing types
00:44
Type only imports
00:44
Exercise: Type only imports
00:06
Answers: Type only imports
00:07
Ambient types
03:15
Exercise: Ambient types
00:29
Answers: Ambient types
00:29
Namespaces
03:12
Exercise: Namespaces
00:26
Answers: Namespaces
00:34
Globals
01:54
Exercise: Globals
00:40
Answers: Globals
01:01
Typing classes
03:29
Exercise: Typing classes
00:22
Answers: Typing classes
00:45
field initializers
00:40
Exercise: field initializers
00:15
Answers: field initializers
00:19
Strict property initializers
01:21
Classes vs Types and interfaces
01:24
Exercise: Classes vs Types and interfaces
00:48
Answers: Classes vs Types and interfaces
00:33
Readonly fields
00:21
Exercise: Readonly fields
00:13
Answers: Readonly fields
00:15
Implements
01:06
Exercise: Implements
00:11
Answers: Implements
00:39
Private and protected fields
07:24
Exercise: Private and protected fields
00:31
Answers: Private and protected fields
00:28
Getters and setters
01:16
Exercise: Getters and setters
00:17
Answers: Getters and setters
00:51
Private and protected alternatives and edge cases
07:41
Exercise: Private and protected alternatives and edge cases
00:48
Answers: Private and protected alternatives and edge cases
00:35
Static members
05:08
Exercise: Static members
00:43
Answers: Static members
01:24
Abstract classes and methods
03:03
Exercise: Abstract classes and methods
00:16
Answers: Abstract classes and methods
00:47
Introduction
00:24
tsconfig settings
01:24
Converting to TypeScript
04:29
Consuming npm packages with types
02:25
Consuming types from definitely typed
02:36
Consuming JavaScript without types
03:55
Features to avoid
07:40
Conclusion
01:10

Meet Your Instructor

Cory House

Cory House

Cory has trained over 10,000 software developers at events and businesses worldwide. Cory is the principal consultant at reactjsconsulting.com, where he has helped dozens of companies transition to React over the last decade. He is an eleven time Microsoft MVP, and speaks regularly at conferences around the world. Cory lives in Kansas City and is active on Twitter/X as @housecor.

View all courses by Cory House

What's New

Deep Dive: Solution Architecture
course

Deep Dive: Solution Architecture

Master solution architecture and turn business needs into scalable, maintainable systems.

Learn More
Migrating: ASP.NET Web APIs to ASP.NET Core
course

Migrating: ASP.NET Web APIs to ASP.NET Core

A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

Learn More
Getting Started: Caching in .NET
course

Getting Started: Caching in .NET

Let's make the hardest thing in programming easy for .NET software engineers.

Learn More
From Zero to Hero: Testing with xUnit in C#
course

From Zero to Hero: Testing with xUnit in C#

Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

Learn More
Create a ChatGPT Console AI Chatbot in C#
blog

Create a ChatGPT Console AI Chatbot in C#

This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

Learn More