TypeScript là một ngôn ngữ lập trình mở rộng từ JavaScript, bổ sung thêm tính năng kiểm tra kiểu tĩnh. Điều này có nghĩa là bạn có thể xác định kiểu dữ liệu cho các biến, hàm và đối tượng trong mã của mình. Việc sử dụng kiểu dữ liệu không chỉ giúp mã của bạn trở nên an toàn hơn mà còn dễ đọc và bảo trì hơn. Dưới đây là các kiểu dữ liệu cơ bản và nâng cao trong TypeScript.

1. Các kiểu dữ liệu cơ bản

1.1 Kiểu số (number)

Kiểu số trong TypeScript có thể lưu trữ các giá trị số, bao gồm cả số nguyên và số thập phân. Bạn không cần phải chỉ định kiểu số cụ thể, chỉ cần sử dụng từ khóa number.

let age: number = 30;
let price: number = 19.99;

1.2 Kiểu chuỗi (string)

Kiểu chuỗi được sử dụng để lưu trữ văn bản. Bạn có thể sử dụng dấu nháy đơn, dấu nháy đôi hoặc dấu nháy ngược để định nghĩa chuỗi.

let name: string = "Alice";
let greeting: string = 'Hello, world!';
let message: string = `Welcome, ${name}!`;

1.3 Kiểu boolean

Kiểu boolean chỉ có hai giá trị: true hoặc false. Đây là kiểu dữ liệu thường được sử dụng trong các câu lệnh điều kiện.

let isActive: boolean = true;
let isCompleted: boolean = false;

2. Các kiểu dữ liệu nâng cao

2.1 Kiểu mảng (Array)

Kiểu mảng cho phép bạn lưu trữ nhiều giá trị cùng loại trong một biến. Bạn có thể định nghĩa mảng bằng cách sử dụng dấu ngoặc vuông [].

let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["Alice", "Bob", "Charlie"];

Bạn cũng có thể sử dụng Array<type> để định nghĩa kiểu mảng.

let numbers: Array<number> = [1, 2, 3, 4, 5];

2.2 Kiểu tuple

Tuple là một kiểu dữ liệu cho phép bạn lưu trữ một tập hợp các giá trị với các kiểu khác nhau. Bạn có thể định nghĩa kiểu tuple bằng cách sử dụng dấu ngoặc vuông và chỉ định các kiểu dữ liệu cụ thể cho mỗi phần tử.

let person: [string, number] = ["Alice", 30];

2.3 Kiểu enum

Kiểu enum cho phép bạn định nghĩa một tập hợp các giá trị có tên. Điều này giúp mã của bạn dễ đọc hơn và dễ bảo trì hơn.

enum Direction {
    Up = 1,
    Down,
    Left,
    Right,
}

let move: Direction = Direction.Up; // Giá trị của move là 1

2.4 Kiểu any

Kiểu any cho phép bạn lưu trữ bất kỳ loại dữ liệu nào. Tuy nhiên, việc sử dụng any có thể làm mất đi tính năng kiểm tra kiểu của TypeScript, vì vậy bạn nên hạn chế sử dụng kiểu này khi không cần thiết.

let randomValue: any = 42;
randomValue = "Now I'm a string!";
randomValue = true;

2.5 Kiểu void

Kiểu void được sử dụng khi một hàm không trả về giá trị nào. Điều này thường được sử dụng cho các hàm có tác dụng phụ, như in ra màn hình hoặc thay đổi trạng thái.

function logMessage(message: string): void {
    console.log(message);
}

2.6 Kiểu null và undefined

TypeScript có hai kiểu dữ liệu đặc biệt là nullundefined. null đại diện cho giá trị không tồn tại, trong khi undefined đại diện cho một biến chưa được gán giá trị.

let u: undefined = undefined;
let n: null = null;

3. Kiểu giao diện (interface)

Giao diện cho phép bạn định nghĩa cấu trúc của một đối tượng, bao gồm các thuộc tính và phương thức mà đối tượng đó cần có. Giao diện giúp mã của bạn dễ đọc hơn và đảm bảo rằng các đối tượng tuân thủ một cấu trúc nhất định.

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

let person: Person = {
    name: "Alice",
    age: 30,
};

Kết luận

Việc hiểu và sử dụng các kiểu dữ liệu trong TypeScript là rất quan trọng để phát triển ứng dụng an toàn và hiệu quả. TypeScript cung cấp một loạt các kiểu dữ liệu từ cơ bản đến nâng cao, cho phép bạn dễ dàng xác định và kiểm tra kiểu của các biến, hàm, và đối tượng. Bằng cách sử dụng các kiểu dữ liệu một cách hợp lý, bạn có thể viết mã rõ ràng hơn, giảm thiểu lỗi và cải thiện khả năng bảo trì của ứng dụng.