kilobai.comkilobai.com
Trang chủPhần mềmGiới thiệu
Đăng nhậpĐăng ký
kilobai.comkilobai.com

Blog chia sẻ kiến thức về công nghệ và phần mềm, cập nhật những thông tin và nội dung hữu ích cho người dùng.

Giới thiệuQuy địnhBảo mậtLiên hệ
© 2026 kilobai.com
Trang chủ
Backend21 tháng 4, 20263 phút đọc73 lượt xem

Typescript là gì? TypeScript từ bản chất đến runtime.

Tác giả: Flop Dev

Chưa có đánh giá

Đăng nhập để đánh giá bài viết

Typescript là gì? TypeScript từ bản chất đến runtime.

TypeScript không làm code bạn chạy đúng hơn.
Nó chỉ giúp bạn sai ít hơn trước khi code chạy.

Mở đầu – Hiểu sai phổ biến

Rất nhiều dev đang hiểu sai:

  • TypeScript giúp code “an toàn runtime”

  • TypeScript chạy cùng Node.js

  • TypeScript giống Java / C# (có type thật)

Thực tế:
TypeScript không tồn tại ở runtime.

Bản chất về TypeScript

TypeScript thực chất là:

TypeScript = Type Checker + Transpiler

Pipeline:

.ts (source)
   ↓
Parser → AST
   ↓
Type Checker
   ↓
Transformer
   ↓
.js (output)
   ↓
V8 (Node.js / Browser)

1. Type Checker (Trình kiểm tra kiểu tĩnh)

Đây là "bộ não" giúp TypeScript phát hiện lỗi ngay trong lúc bạn đang viết code, thay vì đợi đến khi chạy ứng dụng mới biết.

  • Phát hiện lỗi sớm (Static Analysis): Nó kiểm tra các lỗi logic về kiểu dữ liệu. Ví dụ: Bạn không thể thực hiện phép tính cộng một Số với một Object.

  • Hệ thống Type Annotations: Bạn sử dụng các cú pháp như : string, : number, interface, hoặc type để mô tả cấu trúc dữ liệu.

  • Hỗ trợ IDE: Nhờ có Type Checker, các trình soạn thảo như VS Code có thể gợi ý code (IntelliSense) chính xác 100%, giúp bạn biết rõ một object có những thuộc tính nào.

  • Runtime Zero Cost: Khi chương trình thực thi, toàn bộ phần kiểm tra kiểu này sẽ bị loại bỏ. Nó không gây tốn tài nguyên hệ thống khi ứng dụng chạy.

2. Transpiler (Trình chuyển đổi mã)

Trình duyệt (Chrome, Firefox,...) và Node.js không thể đọc trực tiếp file .ts. Chúng chỉ hiểu JavaScript. Transpiler đóng vai trò là "máy dịch".

  • Type Stripping (Xóa bỏ kiểu): Nhiệm vụ chính của nó là xóa sạch các cú pháp của TypeScript (như interface, enum, type) để biến nó thành JavaScript thuần túy.

  • Down-leveling (Hạ cấp phiên bản): Transpiler có thể chuyển đổi mã JavaScript hiện đại (ES6+) về các phiên bản cũ hơn (như ES5) để ứng dụng có thể chạy được trên các trình duyệt lâu đời.

  • Tương thích: Đảm bảo mã nguồn bạn viết bằng những tính năng mới nhất vẫn hoạt động ổn định ở mọi môi trường.

LAB 1 – Type bị “xóa sổ” (Type Erasure)

Code

function greet(name: string): string {
  return "Hello " + name;
}

console.log(greet("Dev"));

Sau khi compile

Insight

  • string biến mất hoàn toàn

  • Không có metadata type nào tồn tại

👉 Đây gọi là:

Type Erasure

3. LAB 2 – TypeScript không bảo vệ runtime

Code

function greet(name: string): string {
  return "Hello " + name;
}
console.log(greet(123));

Runtime

https://i.postimg.cc/7hqL9ZJh/2.png

Hello 123

Insight

  • TypeScript chỉ cảnh báo

  • Bạn có thể bypass

👉 Runtime vẫn chạy như JavaScript bình thường

Flop Dev

Flop Dev

Editor tại kilobai.com

Tôi từng viết code theo kiểu “chạy được là xong”. Cho đến khi nhận ra mình không thực sự hiểu hệ thống mình đang dùng. Từ đó, tôi bắt đầu đào sâu vào bản chất. Blog này là nơi tôi ghi lại những gì tôi học được — không phải để dùng, mà để hiểu.

Bình luận (0)

Đăng nhập để bình luận và đánh giá. Chưa có tài khoản? Đăng ký

Chưa có bình luận nào. Hãy là người đầu tiên!

Nội dung