Hàm assertion (hay còn gọi là type assertion) trong TypeScript là một cách để cho trình biên dịch biết rằng bạn muốn xem một giá trị thuộc về một kiểu dữ liệu cụ thể nào đó. Hàm assertion cho phép bạn “khẳng định” (assert) rằng một giá trị sẽ có một kiểu cụ thể hơn là kiểu mà TypeScript đã suy luận. Điều này có thể hữu ích trong những trường hợp mà TypeScript không thể tự động xác định được kiểu một cách chính xác, hoặc khi bạn biết rõ về kiểu dữ liệu mà một giá trị đang có.
Có hai cú pháp chính để thực hiện type assertion trong TypeScript:
Cú pháp sử dụng dấu as
:
let value: any = "Hello, World!"; let strLength: number = (value as string).length;
Cú pháp sử dụng dấu ngoặc:
let value: any = "Hello, World!"; let strLength: number = (<string>value).length;
Cả hai cú pháp đều cho phép bạn chỉ định rằng value
sẽ được coi như là một chuỗi (string), và sau đó bạn có thể gọi thuộc tính .length
trên nó.
Hàm assertion thường được sử dụng trong những tình huống sau:
any
: Khi bạn nhận giá trị từ một nguồn không chắc chắn (ví dụ: dữ liệu từ API, DOM, hoặc bất kỳ nguồn nào mà bạn không thể chắc chắn về kiểu), bạn có thể sử dụng assertion để chỉ định kiểu mà bạn tin tưởng.any
let someValue: any = "Hello, TypeScript!"; let strLength: number = (someValue as string).length; // sử dụng as console.log(strLength); // 18
Khi làm việc với DOM, bạn có thể muốn nói với TypeScript rằng một phần tử cụ thể là một loại phần tử nhất định.
let element = document.getElementById("myElement"); let inputElement = element as HTMLInputElement; // khẳng định rằng element là HTMLInputElement inputElement.value = "Hello!";
Hàm assertion trong TypeScript là một công cụ hữu ích cho phép bạn xác định kiểu dữ liệu một cách rõ ràng và cụ thể. Điều này giúp tăng cường tính an toàn của mã và giúp bạn kiểm soát tốt hơn về cách mà TypeScript xử lý kiểu dữ liệu. Tuy nhiên, bạn cũng nên cẩn thận khi sử dụng chúng, vì khẳng định sai kiểu có thể dẫn đến lỗi tại thời điểm chạy ứng dụng.