TypeScript là một ngôn ngữ lập trình được phát triển dựa trên JavaScript, hỗ trợ hệ thống kiểu tĩnh. Việc kiểm tra kiểu của một biến là một phần quan trọng trong lập trình với TypeScript, giúp phát hiện lỗi trong quá trình biên dịch và làm cho mã dễ đọc hơn. Dưới đây là một số phương pháp phổ biến để kiểm tra kiểu của biến trong TypeScript.
Sử dụng từ khóa typeof
Một trong những cách đơn giản nhất để kiểm tra kiểu của một biến là sử dụng từ khóa typeof
. Từ khóa này trả về một chuỗi mô tả kiểu của biến đó. Dưới đây là ví dụ:
let name: string = "John Doe";
let age: number = 30;
let isActive: boolean = true;
console.log(typeof name); // "string"
console.log(typeof age); // "number"
console.log(typeof isActive); // "boolean"
Trong ví dụ trên, typeof
trả về kiểu của các biến là string
, number
và boolean
.
Sử dụng toán tử instanceof
Đối với các kiểu đối tượng phức tạp như class hoặc interface, bạn có thể sử dụng toán tử instanceof
để kiểm tra kiểu. Toán tử này kiểm tra xem một đối tượng có phải là thể hiện của một class cụ thể hay không.
class Person {
constructor(public name: string) {}
}
let person = new Person("John Doe");
console.log(person instanceof Person); // true
Trong ví dụ này, toán tử instanceof
trả về true
vì person
là một thể hiện của lớp Person
.
Sử dụng type guards
TypeScript cũng hỗ trợ việc kiểm tra kiểu thông qua type guards, cho phép bạn xác định kiểu của một biến trong một khối mã. Điều này có thể được thực hiện thông qua các hàm hoặc biểu thức.
Kiểm tra kiểu bằng cách sử dụng hàm
Bạn có thể định nghĩa các hàm để kiểm tra kiểu cụ thể. Ví dụ:
function isString(variable: any): variable is string {
return typeof variable === 'string';
}
let input: any = "Hello, TypeScript!";
if (isString(input)) {
console.log(input.toUpperCase()); // "HELLO, TYPESCRIPT!"
}
Kiểm tra kiểu bằng cách sử dụng in
operator
Bạn cũng có thể sử dụng toán tử in
để kiểm tra xem một thuộc tính có tồn tại trong một đối tượng hay không.
interface User {
name: string;
age: number;
}
function greet(user: User | string) {
if (typeof user === 'string') {
console.log(`Hello, ${user}!`);
} else {
console.log(`Hello, ${user.name}!`);
}
}
greet("John");
greet({ name: "Jane", age: 25 });
Kiểm tra kiểu với typeof
trong union types
Khi bạn có các kiểu kết hợp (union types), bạn có thể sử dụng typeof
để kiểm tra từng kiểu.
type Input = string | number;
function processInput(input: Input) {
if (typeof input === 'string') {
console.log(`String input: ${input}`);
} else {
console.log(`Number input: ${input}`);
}
}
processInput("TypeScript");
processInput(42);
Kết luận
Việc kiểm tra kiểu của một biến trong TypeScript là rất quan trọng để đảm bảo tính chính xác và an toàn của mã nguồn. Bạn có thể sử dụng các phương pháp như typeof
, instanceof
, type guards và toán tử in
để thực hiện kiểm tra kiểu. Hiểu rõ cách kiểm tra kiểu giúp bạn tận dụng tối đa các tính năng của TypeScript và viết mã chất lượng hơn.