Casting trong TypeScript là một quá trình cho phép bạn chuyển đổi một kiểu dữ liệu này thành kiểu dữ liệu khác. Điều này rất hữu ích khi bạn biết rằng một giá trị cụ thể sẽ có kiểu khác trong một ngữ cảnh cụ thể. TypeScript cung cấp hai cách để thực hiện casting: sử dụng cú pháp as và cú pháp dấu ngoặc.

Bài viết này là một phần của chuỗi học TypeScript trên "codetuthub.com", cùng với các bài học khác như TypeScript Simple Types, TypeScript Functions, và TypeScript Enums.

1. Tại sao cần Casting?

Casting giúp bạn đảm bảo rằng các giá trị bạn đang làm việc với có kiểu dữ liệu phù hợp với yêu cầu của ứng dụng. Điều này có thể giúp phát hiện lỗi tại thời điểm biên dịch thay vì khi chạy ứng dụng, từ đó giúp mã nguồn trở nên an toàn và dễ bảo trì hơn.

2. Cú pháp Casting

2.1 Sử dụng cú pháp as

Cú pháp as là cách phổ biến để thực hiện casting trong TypeScript. Bạn chỉ cần thêm từ khóa as sau giá trị cần cast và chỉ định kiểu mà bạn muốn chuyển đổi.

Ví dụ

ts
let someValue: any = "Hello, TypeScript!";
let strLength: number = (someValue as string).length;

console.log(strLength); // Kết quả: 17

Trong ví dụ này, biến someValue có kiểu any, và chúng ta sử dụng as để chuyển đổi nó thành kiểu string trước khi gọi thuộc tính length.

2.2 Sử dụng cú pháp dấu ngoặc

Một cách khác để thực hiện casting là sử dụng cú pháp dấu ngoặc.

Ví dụ

ts
let someValue: any = "Hello, TypeScript!";
let strLength: number = (<string>someValue).length;

console.log(strLength); // Kết quả: 17

3. Casting với các kiểu dữ liệu khác

Casting không chỉ áp dụng cho các kiểu đơn giản như string hay number. Bạn có thể sử dụng casting với các kiểu dữ liệu phức tạp hơn, chẳng hạn như đối tượng hoặc mảng.

Ví dụ với đối tượng

ts
interface Person {
    name: string;
    age: number;
}

let person: any = { name: "Alice", age: 25 };
let personDetails: Person = person as Person;

console.log(personDetails.name); // Kết quả: "Alice"

Ví dụ với mảng

ts
let numbers: any[] = [1, 2, 3];
let strNumbers: string[] = numbers as string[];

console.log(strNumbers); // Kết quả: [1, 2, 3] nhưng sẽ gây lỗi khi sử dụng

4. Kiểm tra kiểu với typeofinstanceof

Trước khi thực hiện casting, bạn nên kiểm tra kiểu của biến để đảm bảo rằng casting là hợp lệ. Bạn có thể sử dụng typeof cho các kiểu nguyên thủy và instanceof cho các đối tượng.

Ví dụ

ts
let input: any = "123";
if (typeof input === "string") {
    let str: string = input as string; // Casting an string
    console.log(str); // Kết quả: "123"
}

5. Kết luận

Casting trong TypeScript là một kỹ thuật hữu ích giúp bạn chuyển đổi giữa các kiểu dữ liệu, đảm bảo mã nguồn của bạn an toàn và dễ bảo trì. Bằng cách sử dụng cú pháp as hoặc dấu ngoặc, bạn có thể làm việc với các kiểu dữ liệu một cách linh hoạt. Để tìm hiểu thêm về TypeScript, hãy tham khảo các bài học liên quan trên "codetuthub.com" như TypeScript Simple Types, TypeScript Functions, và TypeScript Enums.