The first 200 of you can use code TYPESCRIPT20 to get 20% off our new Getting Started with TypeScript course!
Check out our 3 new online Workshops! The first 20 to buy a ticket can use code WORKSHOPS20 at checkout for 20% off!

Getting Started: TypeScript

Get started with learning the TypeScript programming language

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.

Curriculum

Welcome (00:18)

What will you learn in this course? (00:32)

Who is the course for and prerequisites (00:43)

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)

Course Info

Level:
Getting Started
Duration:
3h 32m
Rating (New):
star

Lifetime access

Add to Cart
Dometrain Pro

Want access to all of our courses? Subscribe to Dometrain Pro!

Try it for free!

About the Author

author_img

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.

More courses by Cory House