0
0
Lập trình
Admin Team
Admin Teamtechmely

10 Thói Quen Xấu Trong Lập Trình TypeScript Cần Từ Bỏ Để Viết Mã Tốt Hơn Năm 2024

Đăng vào 3 tháng trước

• 4 phút đọc

Chủ đề:

typescript

10 Thói Quen Xấu Trong Lập Trình TypeScript Cần Từ Bỏ Để Viết Mã Tốt Hơn Năm 2024

TypeScript là ngôn ngữ lập trình đang được ưa chuộng nhờ những lợi ích của kiểu tĩnh và tính linh hoạt của JavaScript. Tuy nhiên, khi ngày càng có nhiều lập trình viên sử dụng TypeScript, một số thói quen xấu đã trở thành trở ngại cho việc viết mã hiệu quả. Trong bài viết này, chúng tôi sẽ điểm qua 10 thói quen xấu mà bạn cần từ bỏ trong năm 2024 để nâng cao chất lượng mã của mình.

1. Không Bật Chế Độ strict

Nhiều lập trình viên thường tắt chế độ strict trong TypeScript để đơn giản hóa quá trình phát triển. Tuy nhiên, điều này có thể dẫn đến việc giảm mức độ an toàn và khiến mã trở nên dễ xảy ra lỗi.

Giải pháp: Hãy bật chế độ strict trong tệp tsconfig.json để tận dụng hết các kiểm tra lỗi của TypeScript.

json Copy
{
  "compilerOptions": {
    "strict": true
  }
}

2. Lạm Dụng Kiểu any

Việc sử dụng kiểu any một cách thái quá có thể làm giảm khả năng kiểm tra lỗi của TypeScript. Điều này có thể dẫn đến những lỗi không mong muốn trong quá trình chạy ứng dụng.

Giải pháp: Hãy sử dụng các kiểu rõ ràng hơn như unknown hoặc định nghĩa rõ ràng kiểu dữ liệu của bạn.

typescript Copy
let data: unknown;
if (typeof data === "string") {
  console.log(data.toUpperCase());
}

3. Lạm Dụng Kiểu Khẳng Định (Type Assertion)

Mặc dù kiểu khẳng định (as) có thể rất hữu ích, việc sử dụng nó một cách bừa bãi có thể vô tình biến mã của bạn trở nên không an toàn.

Giải pháp: Hãy sử dụng các bộ bảo vệ kiểu để đảm bảo rằng bạn kiểm tra rõ ràng trước khi sử dụng các giá trị.

typescript Copy
function isString(value: unknown): value is string {
  return typeof value === 'string';
}
if (isString(data)) {
  console.log(data.toUpperCase());
}

4. Bỏ Qua Kiểu Union và Intersection

Kiểu Union (|) và kiểu Intersection (&) giúp bạn mô tả cấu trúc dữ liệu một cách chính xác và cô đọng hơn.

Giải pháp: Hãy tận dụng kiểu Union và Intersection để tạo ra các định nghĩa kiểu linh hoạt và có thể tái sử dụng.

typescript Copy
type Admin = { isAdmin: true; privileges: string[] };
type User = { isAdmin: false; email: string };
type Person = Admin | User;
function logUser(person: Person) {
  if (person.isAdmin) {
    console.log(person.privileges);
  } else {
    console.log(person.email);
  }
}

5. Kiểu Trả Về Không Rõ Ràng

Việc không chỉ định kiểu trả về cho các hàm có thể khiến người dùng phải tự suy đoán kết quả, điều này làm tăng khả năng xảy ra lỗi và giảm khả năng bảo trì mã.

Giải pháp: Hãy luôn chỉ định kiểu trả về rõ ràng cho hàm của bạn, sử dụng kiểu hợp nếu cần thiết.

typescript Copy
function fetchData(): Promise<{ id: number; name: string }> {
  return fetch("/data").then(response => response.json());
}

6. Bỏ Qua nullundefined

Nhiều lập trình viên không xử lý đầy đủ các giá trị nullundefined, dẫn đến lỗi không mong muốn khi truy cập thuộc tính hoặc gọi phương thức.

Giải pháp: Sử dụng toán tử tùy chọn và nullish coalescing để xử lý an toàn các giá trị này.

typescript Copy
const name = user?.profile?.name ?? "Guest";

7. Lạm Dụng Enums

Enums thường được sử dụng cho các hằng số đơn thuần, trong khi có thể sử dụng kiểu chữ hoặc các đối tượng const đơn giản hơn.

Giải pháp: Hãy chọn biến kiểu string hoặc const cho các giá trị không thay đổi.

typescript Copy
type Role = "Admin" | "User" | "Guest";
let userRole: Role = "Admin";

8. Không Sử Dụng readonly

Việc không khai báo readonly cho các thuộc tính có thể dẫn đến việc sửa đổi không mong muốn, dễ gây ra lỗi rất khó phát hiện.

Giải pháp: Hãy sử dụng readonly để đảm bảo rằng các đối tượng của bạn không bị thay đổi một cách ngẫu nhiên.

typescript Copy
const data: readonly number[] = [1, 2, 3];

9. Bỏ Qua Bộ Bảo Vệ Kiểu Tùy Chỉnh

Việc dựa vào kiểm tra kiểu ngầm định có thể gây ra việc bỏ sót một số kiểu trong thời gian chạy, gây ra lỗi không mong đợi.

Giải pháp: Implement bộ bảo vệ kiểu để kiểm tra rõ ràng giá trị trước khi sử dụng.

typescript Copy
function isUser(user: any): user is User {
  return typeof user.email === "string";
}

10. Không Tận Dụng Kiểu unknown

Khi gặp các kiểu không xác định, nhiều lập trình viên thường chọn dùng any. Điều này làm giảm hiệu quả kiểm tra kiểu của TypeScript.

Giải pháp: Hãy sử dụng unknown thay vì any và thu hẹp kiểu khi cần thiết để đảm bảo tính an toàn.

typescript Copy
let input: unknown;
if (typeof input === "string") {
  console.log(input.toUpperCase());
}

Kết Luận

Việc từ bỏ 10 thói quen xấu này sẽ giúp bạn nâng cao chất lượng mã trong TypeScript vào năm 2024. Bằng cách áp dụng các phương pháp tốt nhất, bạn không chỉ viết mã sạch hơn mà còn trở thành một lập trình viên hiệu quả hơn.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào