inflearn logo

Bắt đầu với TypeScript miễn phí: Từ cơ bản đến thiết kế kiểu dữ liệu

Sau khi học JavaScript và bắt đầu với TypeScript, thay vì cú pháp mới, bạn thường sẽ gặp vướng mắc ở câu hỏi: "Tại sao phải sử dụng kiểu dữ liệu này?". Khóa học sẽ dẫn dắt bạn học từ các kiểu dữ liệu cơ bản đến Union, Type Narrowing, Generic, keyof, Pick và Omit. Ngoài ra, các bài tập thực hành được cung cấp dưới dạng nhiệm vụ riêng biệt để bạn có thể trực tiếp áp dụng những nội dung đã học. Sau khi hoàn thành khóa học, bạn sẽ không còn ẩn lỗi kiểu dữ liệu một cách mù quáng mà có thể đọc hiểu được nguyên nhân, đồng thời có thể giảm thiểu các kiểu dữ liệu lặp lại một cách an toàn và thể hiện ý đồ của mã nguồn thông qua các kiểu dữ liệu.

17 học viên đang tham gia khóa học này

Độ khó Cơ bản

Thời gian Không giới hạn

TypeScript
TypeScript
TypeScript
TypeScript

Bạn sẽ nhận được điều này sau khi học.

  • Thay vì che giấu lỗi bằng cách sử dụng `any` hoặc khẳng định kiểu (type assertion), bạn có thể tìm ra sự khác biệt giữa kiểu mong đợi và kiểu thực tế để sửa đổi một cách chính xác.

  • Bằng cách sử dụng đối tượng, hàm, union và interface, bạn có thể thể hiện ý định của mã nguồn và các trạng thái có thể chấp nhận được dưới dạng kiểu dữ liệu (type).

  • Bằng cách sử dụng generic và các ràng buộc (constraints), bạn có thể giảm thiểu mã lặp lại trong khi vẫn duy trì được các kiểu dữ liệu cụ thể cho đầu vào và đầu ra.

  • Bạn có thể trích xuất và chuyển đổi các kiểu dữ liệu cần thiết từ các kiểu dữ liệu hiện có một cách an toàn bằng cách sử dụng keyof, typeof, Pick, Omit, Partial, Record, v.v.

Hầu hết việc học TypeScript đều dừng lại ở việc "xóa" lỗi. Bạn cảm thấy mọi thứ đã xong khi các dòng kẻ đỏ biến mất. Tuy nhiên, mã nguồn được khẳng định bằng as và bao phủ bởi any vẫn sẽ bị lỗi khi chạy ở runtime.

Khóa học này trình bày song song hai cách viết cho cùng một mã nguồn, giúp bạn phân biệt đâu là cách thực sự an toàn trong mỗi chương.

  • Mã che giấu lỗi: const user = data as User -> Vượt qua quá trình biên dịch, nhưng nếu máy chủ trả về một cấu trúc khác, nó sẽ gây ra lỗi nghiêm trọng ở thời điểm thực thi (runtime).

  • Mã xử lý lỗi: Dữ liệu bên ngoài được nhận dưới dạng unknown và chỉ sau khi vượt qua kiểm chứng mới trở thành kiểu domain.


Những điều có thể làm sau khi hoàn thành

  1. Tìm ra điểm sai lệch đầu tiên trong mối quan hệ kiểu dữ liệu từ những thông báo lỗi TypeScript dài.

  2. Sử dụng unknown và thu hẹp kiểu (type narrowing) thay vì any để xử lý dữ liệu bên ngoài một cách an toàn.

  3. Thiết kế và mô hình hóa các kiểu dữ liệu của đối tượng và hàm phù hợp với mục đích, đồng thời đảm bảo các trạng thái không hợp lệ không thể biểu diễn được.

  4. Giảm thiểu các kiểu dữ liệu lặp lại một cách an toàn bằng cách sử dụng Generic, keyof và Utility types.

  5. Sử dụng Discriminated Unions và kiểm tra never để bắt lỗi thiếu các nhánh rẽ ngay tại giai đoạn biên dịch.

  6. Hiểu sự khác biệt giữa assatisfies, đồng thời lựa chọn việc xác thực thay vì bỏ qua.


Chương trình học (6 phần · Chương 1~14)

Part 1. Bắt đầu với TypeScript

  • Ch 1. Hạn chế của JavaScript và sự ra đời của TypeScript

  • Ch 2. Quá trình biên dịch, môi trường phát triển, tsconfig.json

Phần 2. Nắm vững các kiểu dữ liệu cơ bản

  • Ch 3. Suy luận kiểu, Chú thích kiểu, Kiểu nguyên thủy và Kiểu Literal

  • Ch 4. Mảng, Tuple, Kiểu đối tượng

  • Ch 5. Bí danh kiểu, Interface và các kiểu đặc biệt

Phần 3. Kết hợp và quan hệ giữa các kiểu dữ liệu

  • Ch 6. Union và Intersection

  • Ch 7. Thu hẹp kiểu và Union phân biệt

  • Ch 8. Khẳng định kiểu (Type Assertion), satisfies, định kiểu cấu trúc và tính tương thích

Part 4. Hàm và hướng đối tượng

  • Ch 9. Kiểu hàm, tham số và nạp chồng hàm (overloading)

  • Ch 10. Lớp, Công cụ sửa đổi truy cập, Lớp trừu tượng và Giao diện

Part 5. Generic

  • Ch 11. Hàm, kiểu dữ liệu, interface và class Generic

  • Ch 12. Ràng buộc Generic và thiết kế kiểu dữ liệu có thể tái sử dụng

Phần 6. Lập trình kiểu dữ liệu (Type Programming)

  • Ch 13. keyof, typeof, Indexed Access Types

  • Ch 14. Các kiểu Utility và chuyển đổi kiểu trong thực tế


Đề xuất cho những đối tượng sau

  • Những người đã hoàn thành khóa học JavaScript sơ · trung · cao cấp

  • Những người cảm thấy mình chỉ đang xóa lỗi bằng as hoặc any

  • Những người từng gặp lỗi runtime khi sử dụng khẳng định kiểu (type assertion) để nhận phản hồi từ API

  • Những ai muốn "hiểu và sử dụng" Generic và Utility Type

  • Những người muốn biết cả tiêu chuẩn đánh giá tại sao lại sử dụng như vậy

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người đã biết JavaScript nhưng cảm thấy bối rối không biết nên bắt đầu học TypeScript từ đâu

  • Những người đang giải quyết lỗi TypeScript bằng cách sử dụng any và khẳng định kiểu (type assertion)

  • Những người đã học cú pháp TypeScript nhưng không biết cách áp dụng vào thực tế

  • Những người muốn nắm vững kiến thức cơ bản về TypeScript trước khi học React hoặc các framework front-end.

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản của JavaScript (Bạn cần biết cách sử dụng cơ bản về biến, câu lệnh điều kiện, vòng lặp, hàm, mảng và đối tượng.)

Xin chào
Đây là potatosam

Xác minh sự nghiệp

71

Học viên

3

Đánh giá

2

Trả lời

5.0

Xếp hạng

5

Các khóa học

Xin chào, tôi là Poteto-ssam, nhà phát triển Frontend với 4 năm kinh nghiệm.

Hiện tại tôi đang phát triển dịch vụ di động toàn cầu. Tôi đã tích lũy được nhiều kinh nghiệm thực tế thông qua việc xây dựng các dịch vụ đa ngôn ngữ, đồng thời cũng là một trong 30 người đóng góp hàng đầu thế giới cho thư viện mã nguồn mở react-hook-form mà các nhà phát triển trên toàn thế giới đang sử dụng.

Nhưng tôi không phải lúc nào cũng như vậy ngay từ đầu.

Khi mới học JS, tôi đã vô số lần trải qua cảm giác tưởng chừng như mình đã hiểu hết khi gõ theo các bài giảng trên YouTube, nhưng đến lúc mở trình soạn thảo trống lên thì đầu óc lại trắng xóa. Lúc đầu, tôi chỉ mải mê sao chép và dán những đoạn mã tìm được trên Google, và khi xảy ra lỗi, tôi không biết phải bắt đầu xử lý từ đâu, dẫn đến việc phải thức trắng đêm và trải qua nhiều ngày tuyệt vọng.

Trong quá trình đó, tôi đã thực sự rất mông lung. Tôi đã viết code mà thậm chí còn không biết DOM là gì, và từng lãng phí hàng giờ đồng hồ chỉ vì không hiểu tại sao một sự kiện lại thực thi tận hai lần. Điều tôi cần nhất lúc đó không phải là việc học thuộc lòng một lượng lớn ngữ pháp. Mà là một ai đó giải thích cho tôi rằng "tại sao đoạn code này lại hoạt động".

Tôi đã tạo ra khóa học này bằng cách tổng hợp những kinh nghiệm tích lũy được qua 4 năm làm việc thực tế, cũng như những phần mà tôi đã từng gặp khó khăn nhất khi còn là người mới bắt đầu. Bạn không cần phải đi đường vòng như tôi. Bởi vì tôi đã trải qua những điều đó trước bạn rồi.

Thêm

Chương trình giảng dạy

Tất cả

27 bài giảng

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của potatosam

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Miễn phí