TypeScript không chỉ là "JS có thêm type". Để trở thành Senior/Architect, bạn cần hiểu triết lý của Type System và cách thiết kế các hệ thống loại trừ lỗi ngay từ thời điểm biên dịch.
Module 1: Triết lý Type System
- Structural vs Nominal Typing: Tại sao TS chấp nhận hai object khác class nhưng cùng shape? So sánh với Java, C#.
- Type Soundness & Completeness: Tại sao TS cho phép
anyvà triết lý đằng sau sự linh hoạt này. - Type Inference Engine: Cách TS đoán kiểu dữ liệu và giới hạn của nó.
Module 2: Advanced Meta-programming
- Mapped & Template Literal Types: Tạo ra hàng nghìn type từ một object gốc duy nhất (Design Tokens).
- Conditional Types & Infer: Kỹ thuật lập trình với type để xử lý các logic phức tạp trong thư viện UI.
- Utility Types từ con số 0: Tự viết lại
Pick,Omit,Excludeđể hiểu sâu bản chất.
Module 3: Architecture & Design System
- Polymorphic Components: Thiết kế component có thể thay đổi HTML tag nhưng vẫn giữ nguyên Type Safety.
- Discriminated Unions: Quản lý State phức tạp mà không bao giờ gặp lỗi "undefined".
- Brands & Opaque Types: Kỹ thuật ngăn chặn việc truyền nhầm dữ liệu (vd: ID người dùng vs ID sản phẩm).
Module 4: Engineering Excellence
- Compiler Options Deep Dive: Hiểu từng dòng trong
tsconfig.jsonvà tác động đến bundle size. - Module Augmentation: Kỹ thuật mở rộng thư viện của bên thứ ba mà không cần sửa code gốc.
- Performance Profiling for Types: Cách tối ưu khi compiler chạy chậm trong các dự án hàng triệu dòng code.