TypeScript cho người mới: 3 mẹo nhỏ giúp code gọn hơn, dễ thở hơn

Phong

📝 TypeScript cho người mới: 3 mẹo nhỏ giúp code gọn hơn, dễ thở hơn

Hồi mới tập tành qua TypeScript, mình cũng từng thấy nó... hơi "khó ở". Cú pháp lằng nhằng, type với interface đủ thứ, có lúc tưởng đang viết Java chứ không phải JavaScript nữa. Nhưng mà chơi riết rồi ghiền, giờ quay lại viết JS không à là thấy thiếu thiếu kiểu gì ấy.

Dưới đây là 3 mẹo nho nhỏ mình đúc kết được, hy vọng có ích cho mấy bạn mới bỡ ngỡ.

1. Đừng lạm dụng any — bạn mất hết ý nghĩa của TypeScript đó

Cái này là "tội" mà ai mới học cũng mắc phải. Gặp cái gì khó quá, không biết type sao, quăng đại any vô cho lành. Nhưng mà any giống như nói với TypeScript: "Ê, để tao tự lo, mày khỏi can thiệp" — thế là mất hết mấy cái auto-complete với type checking hay ho.

Thay vào đó, hãy dùng unknown, Record<string, unknown>, hoặc tự define interface riêng. Hơi cực xíu nhưng bù lại, code chạy êm ru, không sợ lỗi runtime vô duyên vô cớ.

// Thay vì viết
function fetchUser(id: any): any { ... }

// Thử viết
interface User {
  id: string
  name: string
  email: string
}
function fetchUser(id: string): User { ... }

programmer writing code Ảnh: Lukas Blazek — Pexels

2. Dùng satisfies thay vì ép kiểu (type assertion)

Cái này ít người mới biết lắm. Hồi xưa muốn nói "cục này đúng là kiểu đó, tin tao đi" thì hay xài as SomeType. Nhưng as nó hơi nguy hiểm vì nó ép TypeScript im luôn, không thèm kiểm tra gì hết.

as const với satisfies từ bản TypeScript 4.9+ là những thứ mình khoái nhất. satisfies vừa bảo đảm giá trị hợp lệ, vừa suy luận ra kiểu cụ thể nhất — 2 trong 1, khỏi chê.

3. Có tâm hồn ăn uống thì đừng make mọi thứ thành class

Thỉnh thoảng mình thấy mấy bạn học OOP đâu đó rồi đem vô TypeScript với cái tư tưởng "phải viết class, phải extends, phải implements". Nhưng TypeScript gốc gác là JavaScript mà, không phải Java hay C#.

Hãy ưu tiên type + function thuần tuý:

// Gọn nhẹ, dễ test
function calculateTotal(items: { price: number; qty: number }[]): number {
  return items.reduce((sum, item) => sum + item.price * item.qty, 0)
}

Đơn giản, dễ đọc, dễ bảo trì. Cái gì không cần class thì đừng cố nhồi vô.

software development team Ảnh: Christina Morillo — Pexels

Kết luận: TypeScript là công cụ, đừng để nó làm khó mình. Mấy mẹo nhỏ trên đây chắc chắn sẽ giúp bạn đỡ đau đầu hơn khi code. Quan trọng nhất vẫn là thực hành nhiều, viết nhiều, sai nhiều rồi sẽ quen.

Có bạn nào mới học mà gặp cái gì khó hiểu quá thì comment bên dưới, mình với mọi người support nhau hén. Chúc mọi ngón tay code không bị chuột rút! 🖖