Mô tả

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 REST API with TypeORM


What Will You Learn In this Course?

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!

Bạn sẽ học được gì

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

Yêu cầu

  • Some previous knowledge of web development, preferably in Javascript

Nội dung khoá học

13 sections

Introduction To Typescript

9 lectures
Typescript: The Ultimate Bootcamp - Helicopter View
09:06
IMPORTANT
00:19
Setting Up the Development Environment - Node, Git and IDE
03:44
Why Typescript? Understand the Key Benefits of the Language
12:33
Quiz - Understanding the benefits of the Typescript language
3 questions
Compiling Your First Typescript Program
05:18
Quiz - Understand the basics of the Typescript compiler
3 questions
The Typescript compiler noEmitOnError flag
02:29
Running a Typescript Program in a Browser
06:21

Deep Dive Into The Typescript Type System

29 lectures
Understanding the differences between const, let and var
06:22
Quiz - Understand the differences between const, let and var
3 questions
Typescript primitive types - numbers, strings and booleans
07:59
Quiz - Primitive Types
2 questions
Typescript Template Strings
03:47
Quiz - Template Strings
2 questions
Understanding Type Inference - The most powerful feature of Typescript
03:39
When to use Typescript Type Annotations and Why
06:59
Quiz - Type Inference
4 questions
Typescript Static Type System vs Javascript Dynamic Type System
06:01
Typescript Primitive Types - Objects
08:01
Typescript Nested Object Types
02:31
Understanding the Differences Between Null and Undefined
08:06
Quiz - Null vs Undefined
2 questions
Typescript Optional Chaining - How To Avoid Null-Related Errors
07:06
Understanding The Typescript Null Coalescing Operator
02:44
Typescript Optional Chaining - Best Practices For When To Use It Or Not
04:44
Typescript Primitive Types - Arrays
02:40
Typescript Enums - Our First Custom Type
05:37
Understanding The Typescript Any Type - And Why You Should Avoid It
04:28
Avoid Implicit Any Types With The noImplicitAny Compiler Flag
05:28
Understanding Typescript Union Types - Nullable Variables
06:08
Typescript Strict Null Checks and the strictNullChecks Compiler Flag
03:17
Typescript Non Null Assertion Operator
04:58
Understanding Typescript Literal Types - When Are They Useful?
07:03
Understanding Typescript Type Aliases - Our First Custom Type
03:14
Typescript Interfaces - Defining Custom Object Types
03:54
Typescript Type Aliases vs Interfaces - When to Use Which And Why?
05:15
Understanding Typescript Type Assertions
06:30

Deep Dive Into Typescript Modules, Imports and Exports

3 lectures
Introduction To Typescript Modules - Exports and Imports
04:33
Typescript Module Re-Exports - Building an Import Barrel
07:17
Typescript Modules - Default Exports And The Import As Syntax
04:11

Typescript - Commonly Used Language Features

9 lectures
Arrow Functions vs Normal Functions - Understanding The This Context
10:18
Typescript Default Function Parameters
03:50
The Typescript Object Spread Operator
07:21
Typescript Object Destructuring
05:12
Typescript Array Spread and Destructuring Operators
03:37
Typescript Rest Function Arguments
03:54
Debugging Typescript In The Browser - Step-By-Step Tutorial
06:39
Debugging Typescript In Node - Step-By-Step Tutorial
05:54
Typescript Shorthand Object Creation Notation
02:42

Typescript Functions In Depth

3 lectures
Introduction to Typescript Functions
05:04
Typescript Functions At Runtime - Function Values
04:12
Typescript Custom Function Types
06:38

Typescript Advanced Language Features

5 lectures
Typescript Tuples - How To Use Them?
05:32
Understanding The Typescript Unknown Type
08:11
Understanding Typescript Type Narrowing and Type Predicates
06:29
Understanding Typescript Never Type
08:55
Typescript Intersection Types
02:33

Typescript Compiler Option In Depth (tsconfig.json)

11 lectures
Introduction to tsconfig.json - The target Property
05:21
Using a Custom Name for the Compiler Configuration File
03:52
Controlling What Files To Compile - The files tsconfig.json property
05:24
Controlling What Files To Compile - include and exclude
05:22
The tsconfig.json outdir and rootDir properties
03:33
The tsconfig.json module property
03:32
Choosing What Libraries To Include Wth tsconfig.json lib and nolib properties
05:37
Typescript Compiler baseUrl Option
02:33
Understanding typeRoots, types and the skipLibCheck Compiler Options
08:43
Including Plain Javascript in a Typescript project - allowJs and checkJs
04:23
Typescript Compiler - Miscellaneous Options
04:01

Object Oriented Programming in Typescript

15 lectures
Introduction To Typescript Classes
03:10
Writing Our First Typescript Class - The Constructor
08:05
Typescript Classes - Member Variables
07:05
Typescript Read-Only Class Member Variables
01:28
Typescript Getters and Setters
05:48
Does Typescript Support Multiple Constructors?
03:37
Understanding The This Keyword When Used In a Class
03:55
Understanding Typescript Static Variables
05:11
Understanding Typescript Static Class Methods
04:32
Introduction To Object Oriented Inheritance
03:01
The Extends Keyword - Creating a Child Class
07:35
Understanding the Protected Keyword
05:03
Typescript Abstract Classes
05:26
Objected-Oriented Interfaces
07:06
The Singleton In Typescript - An Object-Oriented Design Pattern
08:16

Typescript Generics In Depth

9 lectures
New Section - Introduction To Typescript Generics
05:09
Commonly Used Generic Libraries
03:19
The Typescript Optional Interface
06:48
The Typescript Read Only Interface
05:09
Introduction To Generic Functions
07:26
Generic Functions With Multiple Generic Parameters
04:05
Typescript Generics - Type Constraints and the extends Keyword
03:10
Typescript Generics - Understanding the keyof Operator
07:27
Typescript Generic Classes
04:58

Typescript Decorators In Depth

7 lectures
Introduction To Typescript Decorators - How Do They Work?
10:47
Introduction To Typescript Method Decorators
09:47
Understanding The MethodDecorator Function Signature
07:35
Typescript Method Decorators - Step-By-Step Implementation
12:10
Applying Multiple Typescript Decorators To The Same Method
05:32
Typescript Class Decorators
08:22
Typescript Property Decorators
12:46

Typescript Practical Project - Building a Node REST API with TypeORM and Express

32 lectures
New Section - Building a Secure Node REST API From Scratch In Typescript
04:48
Kickstarting Our Node Project With npm init
04:13
Setting Up An Express Server From Scratch
06:46
Writing Our First Express Endpoint
05:23
How To Add Hot-Reload To Our Typescript Development Environment
07:22
Parsing Command Line Arguments in a Node Program
07:46
Adding Support For Multiple Environments Using dotenv
04:51
Making The Server Port Number Configurable
03:47
Setting Up The Winston Logging Library
10:52
Setting a Cloud SQL Database With Heroku and Postgres
05:15
Introduction To TypeORM
04:38
Setting Up a Database Connection With TypeORM
08:55
Setting Up Our First TypeORM Model
08:33
Modelling a One To Many Relationship in TypeORM
05:39
Generating a Database Schema Using TypeORM
06:27
Trying Out TypeORM - Populating The Database
09:36
Populating a Database With TypeORM - Repositories
10:12
Writing a Database Cleanup Script With TypeORM
05:40
Implementing a Data Retrieval Express Endpoint Using TypeORM
09:19
Eager Fetching a One To Many Relationship Using TypeORM
03:28
Error Handling In Asynchronous Express Endpoints
06:37
Overridding the Express Default Error Handling Behavior
09:51
Adding CORS Capabilities To An Express Server
07:19
Filtering Query Results In TypeORM - Part 1
06:19
Filtering Query Results In TypeORM - Part 2
06:13
Implementing The Find Course Lessons Endpoint
07:01
Performing a SQL Join With TypeORM
08:42
Setting Up an Express JSON Body Parser
07:03
Implementing an Express PATCH Update Endpoint
07:26
Controlling The Transaction Isolation Level With TypeORM
09:42
Implementing a POST Create Entity Endpoint
08:25
Implementing an Express DELETE Endpoint
08:25

Securing a Node REST API With Typescript

14 lectures
New Section Introduction - Securing a Node REST API With Typescript
04:15
Setting Up The TypeORM Users Entity
07:33
Populating the USERS Table With User Credentials
05:32
Creating Password Digests Using the Node Crypto Module
07:38
Hashing a Password To Store It In The Database
08:36
Implementation of a Create User POST Endpoint
12:27
Implementing a Login Endpoint - Initial Skeleton
07:45
Login Endpoint - Validating The User Password
05:27
Understanding JWTs - JSON Web Tokens
10:23
Setting Up The jsonwebtoken Node Library
06:25
Creating And Signing An Authentication JWT
06:59
Designing an Express Authentication Middleware
05:33
Step-By-Step Implementation of an Authentication Middleware
11:56
Role Based Authorization Using an Express Middleware
10:58

Conclusion

3 lectures
Other Courses
02:17
Bonus Lecture
01:38
Conclusions and Key Takeaways
05:00

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.