TypeScript là gì và có nên học không? Hướng dẫn nhập môn

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Nếu bạn xem tin tuyển dụng lập trình viên frontend, rất có thể bạn thấy yêu cầu biết TypeScript. Nhiều dự án React, Vue, Angular và Node.js hiện nay dùng nó như ngôn ngữ mặc định. Vậy TypeScript là gì, khác JavaScript ra sao và bạn nên bắt đầu thế nào?

TypeScript là gì?

TypeScript là một ngôn ngữ xây dựng trên JavaScript, thêm hệ thống kiểu dữ liệu tĩnh. Mọi mã JavaScript hợp lệ đều là TypeScript hợp lệ, bạn chỉ thêm chú thích kiểu khi cần. Trình biên dịch (tsc) kiểm tra kiểu rồi chuyển mã thành JavaScript thuần để chạy trên trình duyệt hoặc Node.js. Nói cách khác, TypeScript chỉ tồn tại lúc phát triển, không chạy trực tiếp trong trình duyệt.

Vấn đề TypeScript giải quyết

Hãy xem lỗi mà JavaScript không báo cho đến khi chạy:

function tinhGiaSauGiam(gia, phanTram) {
  return gia - gia * phanTram / 100;
}

tinhGiaSauGiam('200000', 10);  // chuỗi thay vì số, kết quả có thể sai âm thầm
tinhGiaSauGiam(200000);       // thiếu đối số, kết quả NaN

Với TypeScript:

function tinhGiaSauGiam(gia: number, phanTram: number): number {
  return gia - gia * phanTram / 100;
}

tinhGiaSauGiam('200000', 10);  // Lỗi ngay trong trình soạn thảo
tinhGiaSauGiam(200000);       // Lỗi: thiếu đối số

Lỗi hiện ra ngay khi bạn gõ, trước khi người dùng gặp. Đó là lợi ích lớn nhất: phát hiện sớm.

Các kiểu cơ bản

let ten: string = 'Lan';
let tuoi: number = 22;
let dangHoc: boolean = true;
let diem: number[] = [8, 9, 10];
let bo: [string, number] = ['Lan', 22];   // tuple
let bat_ky: unknown = 'chưa biết kiểu';

// union và literal
let trangThai: 'cho' | 'xong' | 'loi' = 'cho';
let id: number | string = 5;

Thông thường bạn không cần ghi kiểu cho biến vì TypeScript suy luận được (type inference): let x = 5 tự hiểu x là number. Chỉ nên ghi kiểu ở ranh giới rõ ràng như tham số hàm, giá trị trả về và cấu trúc dữ liệu.

Hãy tránh any vì nó tắt kiểm tra kiểu. Khi chưa biết kiểu, unknown an toàn hơn vì buộc bạn kiểm tra trước khi dùng.

Interface cho cấu trúc dữ liệu

interface NguoiDung {
  id: number;
  ten: string;
  email?: string;       // thuộc tính tùy chọn
}

function chao(u: NguoiDung): string {
  return 'Xin chào ' + u.ten;
}

chao({ id: 1, ten: 'Lan' });         // hợp lệ
chao({ id: 2 });                    // Lỗi: thiếu ten

Trình soạn thảo còn gợi ý tự động tên thuộc tính khi bạn gõ u., và đổi tên một thuộc tính sẽ cập nhật mọi nơi dùng nó. Đó là trải nghiệm làm việc tốt hơn nhiều khi dự án lớn.

Cài đặt và chạy thử

  1. Cài Node.js, rồi chạy npm install -D typescript trong thư mục dự án.
  2. Tạo cấu hình: npx tsc --init, sinh file tsconfig.json. Hãy bật chế độ strict để có kiểm tra chặt chẽ.
  3. Viết file app.ts rồi biên dịch bằng npx tsc, kết quả là app.js.
  4. Trong thực tế, bạn thường dùng công cụ như Vite hoặc Next.js đã tích hợp sẵn TypeScript, không cần biên dịch tay.

Có nên học TypeScript không?

Lợi ích:

  • Bắt lỗi sớm, đặc biệt lỗi sai tên thuộc tính hay sai kiểu tham số.
  • Gợi ý mã và tự động hoàn thành tốt hơn, nên làm việc nhanh hơn.
  • Kiểu dữ liệu đóng vai trò tài liệu sống, giúp đọc mã của người khác dễ hơn.
  • Tái cấu trúc mã an toàn hơn khi dự án và nhóm lớn dần.

Đánh đổi:

  • Phải học thêm cú pháp và khái niệm như generics.
  • Cần thêm bước cấu hình và biên dịch.
  • Với script nhỏ hoặc dự án thử nghiệm, nó có thể là thừa.

Lời khuyên: hãy học JavaScript vững vàng trước, rồi mới thêm TypeScript. TypeScript không thay thế việc hiểu JavaScript, nó chạy trên đó. Khi bạn đã quen với closure, promise và module, TypeScript sẽ trông như một lớp bảo vệ tự nhiên chứ không phải gánh nặng.

Lộ trình gợi ý

  1. Làm quen kiểu cơ bản, union, interface và type alias.
  2. Gõ kiểu cho hàm và dữ liệu API.
  3. Học generics để viết hàm và thành phần tái sử dụng.
  4. Dùng TypeScript trong một dự án React hoặc Node nhỏ.
  5. Chuyển dần một dự án JavaScript có sẵn sang TypeScript từng file một.

Kết luận

TypeScript là JavaScript có thêm kiểu dữ liệu để bạn phát hiện lỗi sớm và làm việc trơn tru hơn khi dự án lớn dần. Nó khá dễ tiếp cận nếu đã có nền JavaScript, và là kỹ năng có giá trị trong nhiều tin tuyển dụng.

Để học TypeScript và JavaScript theo một lộ trình có hệ thống, bạn có thể tìm hiểu thêm trong danh sách khóa học trên codebem.com.

author_photo
Nguyễn Đình Cường

0 comment