Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
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à 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.
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ả NaNVớ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.
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 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 tenTrì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.
npm install -D typescript trong thư mục dự án.npx tsc --init, sinh file tsconfig.json. Hãy bật chế độ strict để có kiểm tra chặt chẽ.app.ts rồi biên dịch bằng npx tsc, kết quả là app.js.Lợi ích:
Đánh đổi:
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.
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.
Nguyễn Đình Cường
0 comment