Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Typescript: The Complete Developer's Guide

TypeScript: Hướng dẫn Toàn diện cho Nhà phát triển

TypeScript: Hướng dẫn Toàn diện cho Nhà phát triển

Thành thạo TypeScript bằng cách học các mẫu thiết kế phổ biến và xây dựng dự án phức tạp. Bao gồm cả React và Express!

4.7
(14,002 đánh giá)
86,221 học viên
Giảng viên
Stephen Grider
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 409.000đ -88%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
27.0 giờ video
360 bài giảng
2 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 17/03/2026

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

Nắm vững các mẫu thiết kế để xây dựng ứng dụng quy mô lớn
Tích hợp TypeScript vào dự án React/Redux hoặc Express
Hiểu rõ Composition (Tổng hợp) so với Inheritance (Kế thừa), và khi nào nên dùng mỗi loại
Viết code tái sử dụng mạnh mẽ nhờ lớp (classes) và giao diện (interfaces)
Tạo bộ khung (boilerplate) tái sử dụng cho dự án TypeScript của riêng bạn

Yêu cầu

Kiến thức cơ bản về ES2015 Javascript

Đối tượng phù hợp

Dành cho mọi lập trình viên Javascript muốn hiểu cách tổ chức codebase lớn

Nội dung khóa học

20 phần • 335 bài giảng
1 Cách nhận trợ giúp
2 Tài nguyên khóa học
3 Tổng quan về TypeScript
4 Thiết lập môi trường
5 File dự án TypeScript mẫu
6 Ứng dụng đầu tiên
7 Thực thi mã TypeScript
8 Nhắc lại lệnh npx tsx
9 Một thay đổi nhanh
10 Phát hiện lỗi với TypeScript
11 Phát hiện thêm nhiều lỗi!
1 Đừng bỏ qua - Tổng quan khóa học
2 Các kiểu dữ liệu
3 Tìm hiểu sâu hơn về kiểu dữ liệu
4 Ví dụ về kiểu dữ liệu
5 Chúng ta dùng kiểu dữ liệu ở đâu?
1 Chú thích kiểu và Suy luận kiểu (Inference)
2 Chú thích kiểu với Biến
3 Chú thích kiểu cho Object Literal
4 Chú thích kiểu xung quanh Hàm
5 Hiểu về Suy luận kiểu
6 Kiểu 'Any'
7 Sửa lỗi kiểu 'Any'
8 Khởi tạo trễ
9 Khi Suy luận kiểu không hoạt động
1 Thêm về Chú thích kiểu xung quanh Hàm
2 Suy luận kiểu xung quanh Hàm
3 Chú thích kiểu cho Hàm ẩn danh
4 Void và Never
5 Phân rã (Destructuring) với Chú thích kiểu
6 Chú thích kiểu xung quanh Đối tượng
1 Mảng trong TypeScript
2 Tại sao cần Mảng có kiểu?
3 Nhiều kiểu dữ liệu trong Mảng
4 Khi nào nên dùng Mảng có kiểu
1 Tuple trong TypeScript
2 Tuple trong thực tế
3 Tại sao cần Tuple?
1 Giao diện
2 Chú thích kiểu dài dòng
3 Sửa chú thích kiểu dài bằng Giao diện
4 Cú pháp xung quanh Giao diện
5 Hàm trong Giao diện
6 Tái sử dụng code với Giao diện
7 Kế hoạch tổng quát với Giao diện
1 Lớp
2 Kế thừa cơ bản
3 Bổ từ (Modifiers) cho phương thức thể hiện
4 Trường (Fields) trong Lớp
5 Trường với Kế thừa
6 Khi nào nên dùng Lớp
1 Tổng quan ứng dụng
2 File khởi đầu bắt buộc
3 Đóng gói với Parcel
4 Cấu trúc dự án
5 Tạo dữ liệu ngẫu nhiên
6 File định nghĩa kiểu (Type Definition Files)
7 Cài đặt định nghĩa kiểu cho Faker
8 Sử dụng File định nghĩa kiểu
9 Câu lệnh Xuất (Export) trong TypeScript
10 Định nghĩa một Công ty
11 Lưu ý về tạo Khóa API
12 Thêm hỗ trợ Google Maps
13 Tích hợp Google Maps
14 Khám phá File định nghĩa kiểu
15 Ẩn chức năng
16 Tại sao dùng Private Modifiers? Đây là lý do
17 Thêm điểm đánh dấu (Markers)
18 Code trùng lặp
19 Một giải pháp khả thi
20 Hạn chế truy cập với Giao diện
21 Kiểm tra kiểu ngầm định
22 Hiển thị cửa sổ popup
23 Cập nhật định nghĩa Giao diện
24 Mệnh đề Implements tùy chọn
25 Tổng kết ứng dụng
1 Tổng quan ứng dụng
2 Cấu hình trình biên dịch TS
3 Biên dịch và Thực thi đồng thời
4 Thuật toán sắp xếp đơn giản
5 Khung sắp xếp (Sorter Scaffolding)
6 Triển khai sắp xếp
7 Hai vấn đề lớn
8 TypeScript thực sự thông minh
9 Bảo vệ kiểu (Type Guards)
10 Tại sao cách này không tốt?
11 Trích xuất logic chính
12 Tách biệt Hoán đổi và So sánh
13 Tiết lộ quan trọng
14 Định nghĩa Giao diện
15 Sắp xếp bộ sưu tập tùy ý
16 Triển khai Danh sách liên kết (Linked List)
17 Code Danh sách liên kết hoàn chỉnh
18 Chỉ...cần...sửa...thêm...một...lần...nữa...
19 Tích hợp phương thức Sắp xếp
20 Vấn đề với Kế thừa
21 Lớp trừu tượng (Abstract Classes)
22 Tại sao dùng Lớp trừu tượng?
23 Giải quyết mọi vấn đề với Lớp trừu tượng
24 Giao diện so với Lớp trừu tượng
1 Tổng quan dự án
2 Thiết lập dự án
3 Dữ liệu CSV
4 File định nghĩa kiểu - Lần nữa!
5 Đọc file CSV
6 Chạy phân tích
7 Mất ngữ cảnh tập dữ liệu
8 Sử dụng Enums
9 Khi nào nên dùng Enums
10 Trích xuất chức năng Đọc CSV
11 Kiểu dữ liệu
12 Chuyển đổi chuỗi ngày tháng thành đối tượng Date
13 Chuyển đổi giá trị hàng
14 Khẳng định kiểu (Type Assertions)
15 Mô tả hàng bằng Tuple
16 Chưa xong với FileReader!
17 Hiểu về Tái cấu trúc #1
18 Tạo Lớp trừu tượng
19 Kiểu biến với Generics
20 Áp dụng kiểu cho Lớp Generic
21 Cách tái cấu trúc thay thế
22 Cách tiếp cận dựa trên Giao diện
23 Trích xuất tham chiếu trận đấu - Lần nữa!
24 Biến đổi dữ liệu
25 Cập nhật tham chiếu Reader
26 Kế thừa so với Tổng hợp (Composition)
27 Thêm về Kế thừa so với Tổng hợp
28 Quan niệm sai lầm lớn về Tổng hợp
29 Mục tiêu tiếp theo
30 Cách tiếp cận dựa trên Tổng hợp
31 Triển khai lớp Phân tích (Analyzer)
32 Xây dựng Báo cáo (Reporter)
33 Kết hợp tất cả lại
34 Tạo báo cáo HTML
35 Một điều cuối cùng!
36 Ồ, lỗi của tôi
37 Tổng kết ứng dụng
1 Thêm về Generics
2 Suy luận kiểu với Generics
3 Generics cho Hàm
4 Ràng buộc Generic (Generic Constraints)
1 Tổng quan ứng dụng
2 Nhắc lại về dùng Parcel với npx
3 Thiết lập Parcel
4 Cấu trúc Framework
5 Thiết kế Người dùng (User)
6 Truy xuất thuộc tính Người dùng
7 Thuộc tính tùy chọn trong Giao diện
8 Hệ thống sự kiện (Eventing)
9 Hỗ trợ Người nghe (Listener)
10 Lưu trữ Người nghe sự kiện
11 Tạo Mảng động
12 Kích hoạt hàm gọi lại sự kiện (Callbacks)
13 Cập nhật nhỏ cho JSON server và script khởi chạy Parcel
14 Thêm JSON Server
15 Hiểu quy ước REST
16 Thêm chức năng Fetch
17 Fetch dữ liệu Model thành công
18 Lưu dữ liệu Người dùng
19 Tái cấu trúc với Tổng hợp
20 Tích hợp lại Hệ thống sự kiện
21 Tổng hợp với đối tượng lồng nhau
22 Trích xuất phức tạp hơn
23 Tùy chọn điều chỉnh Sync
24 Tái cấu trúc Sync
25 Ràng buộc Generic xung quanh Sync
26 Kết nối Sync trở lại User
27 Thuộc tính tùy chọn
28 Không có overload nào khớp với lệnh gọi này - this.data
29 Trích xuất lớp Thuộc tính (Attributes)
30 Hạn chế của phương thức Get
31 Hai quy tắc quan trọng
32 Ràng buộc Generic nâng cao
33 Tích hợp lại Thuộc tính
34 Tổng hợp là Ủy quyền (Delegation)
35 Nhắc lại về Accessors
36 Phương thức Chuyển tiếp (Passthrough)
37 Vấn đề ngữ cảnh
38 Thiết lập Dữ liệu đồng thời Kích hoạt
39 Truy xuất Dữ liệu Người dùng
40 Lưu Dữ liệu
41 Composition (Tổ hợp) vs Inheritance (Kế thừa)... Lại một lần nữa!
42 Trích xuất một Lớp Model
43 Mở rộng Lớp User
44 Tái cấu trúc User cuối cùng
45 Tổng kết về Model
46 Phương thức Chuyển tiếp Rút gọn
47 Bộ sưu tập Users
48 Triển khai một Bộ sưu tập Users
49 Phân tích cú pháp JSON của User
50 Bộ sưu tập User Tổng quát
51 Một Phương thức Lớp cho Bộ sưu tập
52 Các Lớp View
53 Xây dựng UserForm
54 Phương thức Render của UserForm
55 Hiển thị HTML
56 Định nghĩa Bản đồ Sự kiện (Events Map)
57 Liên kết Bộ xử lý Sự kiện
58 Thêm Thuộc tính Model
59 Liên kết Sự kiện theo Tên Lớp
60 Thêm Phương thức cho User
61 Hiển thị lại khi Model Thay đổi
62 Đọc Văn bản Nhập liệu
63 Kiểm tra Null Nghiêm ngặt
64 Logic View Có thể Tái sử dụng
65 Trích xuất một Lớp View
66 Lỗi Type 'K' không thỏa ràng buộc 'HasId'.ts
67 Mở rộng với Ràng buộc Kiểu tổng quát (Generic Constraints)
68 Lưu Dữ liệu Từ một View
69 UserEdit và UserShow
70 Lồng ghép với Các vùng (Regions)
71 Ánh xạ Các vùng
72 Kiểm tra Ánh xạ Vùng
73 Lồng ghép View
74 Collection Views
75 Triển khai CollectionView
76 Tổng kết Ứng dụng
1 Typescript với Các thư viện JS
2 Tổng quan Ứng dụng
3 Thiết lập Dự án
4 Các Route Cơ bản với Express
5 Sử dụng Express Router
6 Phân tích Thân biểu mẫu (Form Bodies)
7 Tại sao Express không tương thích tốt với TS?
8 Vấn đề với Tệp Định nghĩa Kiểu (Type Definition Files)
9 Xử lý các Định nghĩa Kiểu Kém
10 Thiết lập Phiên làm việc (Sessions)
11 Kiểm tra Trạng thái Đăng nhập
12 Đăng xuất
13 Bảo vệ Các Route
14 Tích hợp Chặt chẽ hơn
15 Quy trình Tái cấu trúc
16 Nhắc lại về Prototypes
1 Lưu ý về môi trường đích (target) trong tsconfig
2 Decorators trong Typescript
3 Chi tiết về Decorators
4 Bộ mô tả Thuộc tính (Property Descriptors)
5 Bao bọc Phương thức với Bộ mô tả
6 Decorator Factories
7 Decorators cho Thuộc tính
8 Thêm về Decorators
1 Lời tuyên bố từ chối trách nhiệm nhanh
2 Tổng quan Dự án
3 Tại sao việc này lại khó?
4 Tổng quan Giải pháp
5 Lưu ý về môi trường đích (target) trong tsconfig
6 Cơ bản về Metadata
7 Metadata Thực tế
8 Hãy Tái cấu trúc!
9 Decorator 'Get'
10 Sửa lỗi ES2016 cho Controller Decorator
11 Controller Decorator
12 Bằng chứng Khái niệm (Proof of Concept)
13 Một vài chỉnh sửa
14 Định nghĩa RouteBinder
15 Tập hợp Phương thức Đóng với Enums
16 Khóa Metadata (Metadata Keys)
17 Decorator 'Use'
18 Kiểm tra Use
19 Bộ xác thực Thân yêu cầu (Body Validators)
20 Xác thực Tự động
21 Kiểm tra Xác thực Tự động
22 Sửa các Route
23 Sử dụng Bộ mô tả Thuộc tính để Kiểm tra Kiểu
24 Tổng kết Ứng dụng
1 Tổng quan về React và Redux
2 Tổng quan Ứng dụng
3 Boilerplate React App bắt buộc và Cảnh báo ReactDOM
4 Các Component Đơn giản
5 Interfaces với Props
6 Xử lý State của Component
7 State của Component gây Nhầm lẫn!
8 Functional Components
9 Gạch ngang createStore trong Trình soạn thảo Code
10 Thiết lập Redux
11 Action Creators với Typescript
12 Enum Các loại Hành động (Action Types)
13 Hàm Dispatch Tổng quát (Generic)
14 Một Reducer với Enums
15 Xác thực Cấu trúc Store
16 Kết nối một Component với Redux
17 Hiển thị một Danh sách
18 Thêm Chức năng Xóa
19 Tách riêng Action Creators
20 Biểu diễn Actions dưới dạng Hợp Kiểu (Type Union)
21 Type Guards trong Reducers
22 Kết nối hành động deleteToDo
23 Một lần nữa, Tệp Định nghĩa Kiểu
24 Theo dõi Trạng thái Tải với State của Component
25 Tổng kết Ứng dụng
1 Boilerplate React App bắt buộc và Cảnh báo ReactDOM
2 Phần mở rộng Tệp và Khởi động React
3 Những thay đổi với TypeScript
4 Điểm Khác biệt Lớn với Props
5 Chú thích Kiểu rõ ràng cho Component
6 Lỗi Thuộc tính 'children' không tồn tại
7 Chú thích với Children
8 State với TypeScript
9 Suy luận Kiểu với State
10 Kết thúc Nhanh Ví dụ
11 Thêm về State
12 Hợp Kiểu (Type Unions) trong State
13 Bộ xử lý Sự kiện Nội tuyến
14 Gán Kiểu cho Bộ xử lý Sự kiện Độc lập
15 Xử lý cả Sự kiện Kéo thả!
16 Áp dụng Kiểu cho Refs
17 Thêm về Refs
1 Tổng quan Ứng dụng
2 Boilerplate React App bắt buộc
3 Thiết kế Redux Store
4 Thiết lập Reducer
5 Chú thích Kiểu Trả về
6 Gán Kiểu cho một Action
7 Interfaces riêng biệt cho Actions
8 Áp dụng Interfaces cho Actions
9 Thêm một Action Type Enum
10 Cách Tổ chức Code Tốt hơn
11 Cập nhật nhỏ cho Khối Try / Catch
12 Thêm Action Creators
13 Thêm Logic Yêu cầu (Request)
14 Áp dụng Kiểu cho Dispatch
15 Gạch ngang createStore trong Trình soạn thảo Code
16 Thiết lập Xuất (Exports)
17 Kết nối với React
18 Ối... State Ban đầu (Initial State)!
19 Nhắc lại về Các kiểu Sự kiện
20 Lỗi TypeScript khi Dispatch Action
21 Gọi một Action Creator
22 Liên kết Action Creators
23 Chọn State (Selecting State)
24 Kiểu gán Awkward xung quanh React-Redux
25 Tạo một Bộ chọn đã Gán kiểu (Typed Selector)
26 Sử dụng State của Store
27 Tổng kết Nhanh - Bài giảng Cuối cùng
1 Phần thưởng!

Giới thiệu khóa học

Composition vs Inheritance? You'll understand it.  Build your own web framework? You'll do it.  Typescript with React/Redux?  It's here!

--------------------

This is the best course online for mastering Typescript.

Every other course online teaches you the basic syntax and features of Typescript, but only this course will show you how to apply Typescript on real projects, instructing you how to build large, successful projects through example.

Typescript is a 'super-set' of Javascript.  That means that if you already know Javascript, you are ready to take this course.  Typescript adds in several important features to Javascript, including a type system.  This type system is designed to help you catch errors during development, rather than when you are running your code.  That means you'll be twice as productive by catching bugs earlier in development.  But besides the type system, Typescript also provides several tools for structuring large codebases and writing truly reusable code.

Mastering Typescript by reading the documentation alone is challenging.  Although you might know what a 'typed array' or an 'interface' is, the documentation (and other courses!) don't show you where to use this features, or how to use them effectively.  The goal of this course is to help you understand why each feature of Typescript exists, and exactly where to use them.

Top companies are hungry for Typescript developers.  Some of the largest web apps today are being built with Typescript.  Employers are scrambling to find engineers who are fluent with this cutting edge system.  Solid knowledge of Typescript will make you far more employable, by giving you a unique skill that few other engineers possess.

Planning on building your own apps?  Using Typescript will help you structure your project correctly from day one, ensuring that you won't be crushed under technical debt at some critical stage of your company.  In this course, you'll learn how to write reusable code, with a tremendous emphasis on leveraging classes and interfaces to make swappable 'widgets'.  You will be able to reconfigure your apps on the fly to build wildly different features with only a minimum amount of effort

Learn from someone who has worked on one of the largest Typescript projects around. On professional projects of my own, I have developed plugins for an open-source, browser-based code editor called Theia.  The Theia project is absolutely gargantuan in scale, encompassing hundreds of thousands of lines of code, all written in Typescript.  This project works only thanks to the power of Typescript.

But don't just take my word for it - check out the reviews for this course! You'll see that other engineers, just like yourself, have had great success and acquired a new understanding of how to build scalable web applications.

--------------------

There is just too much content in this course to summarize in a few short words, but here is a partial listing of the different skills you'll master:

  • Understand why Composition vs Inheritance is the most mis-understood topic in the Javascript community

  • Master the fundamental features of Typescript by working on real world projects

  • We'll build a custom front-end framework from scratch that you can use in place of React or Angular on your own personal projects

  • Comprehend the complex interplay between classes and interfaces, and why these two pieces of Typescript enable you to build incredibly reusable code

  • Dive deeper into Typescript with decorators, which we'll use to build a custom integration between Typescript and Express

  • Structure your React and Redux applications more confidently by understanding how to couple them with Typescript

  • Skip the documentation for third party libraries by fluently reading type definition files

  • Learn just how smart Typescript is by experiencing how deeply it analyzes your code for errors


I learned Typescript years ago by hard trial-and-error.  Now you can learn at 5x the speed I did.  This is the course that I wish I had when I first got started with Typescript.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Javascript
Hiển thị tất cả khoá học Programming Languages
Hiển thị tất cả khoá học Typescript
Hiển thị tất cả khoá học Web Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊