Tuple type là gì?

Noun Programming Typescript
tuple
Kiểu dữ liệu tuple

Kiểu dữ liệu tuple (tuple type) là một mảng (array) có độ dài (length) được xác định trước và các kiểu dữ liệu (type) được xác định trước ở mỗi vị trí chỉ số (index) trong mảng. Các kiểu dữ liệu bên trong mảng này không nhất thiết phải giống nhau, có thể là hỗn hợp của nhiều kiểu khác nhau. Trong một mảng bình thường, nó có thể chứa bất kỳ từ 0 đến một số phần tử (element) chưa biết và thứ tự không quan trọng.

Tuple khác với mảng thông thường, trong tuple kiểu dữ liệu của mỗi phần tử, độ dài của mảng và thứ tự sắp xếp các phần tử trong mảng là quan trọng.

Dưới đây là ví dụ về kiểu dữ liệu tuple (tuple type):


var employee: [number, string] = [1, "Steve"];
var person: [number, string, boolean] = [1, "Steve", true];

var user: [number, string, boolean, number, string];// declare tuple variable
user = [1, "Steve", true, 20, "Admin"];// initialize tuple variable

Bạn cũng có thể khai báo một mảng tuple.


var employee: [number, string][];
employee = [[1, "Steve"], [2, "Bill"], [3, "Jeff"]];

TypeScript tạo một mảng trong JavaScript cho biến tuple. Ví dụ: var employee: [number, string] = [1, 'Steve'] sẽ được biên dịch thành var employee = [1, "Steve"] trong JavaScript.

Truy cập (access) phần tử của tuple

Chúng ta có thể truy cập các phần tử của tuple bằng cách sử dụng chỉ số, giống như cách với một mảng. Một chỉ số bắt đầu từ số không.


var employee: [number, string] = [1, "Steve"];
employee[0]; // returns 1
employee[1]; // returns "Steve"

Thêm phần tử vào tuple

Bạn có thể thêm các phần tử mới vào một tuple bằng cách sử dụng phương thức (method) push().


var employee: [number, string] = [1, "Steve"];
employee.push(2, "Bill"); 
console.log(employee); //Output: [1, 'Steve', 2, 'Bill']

Điều này được cho phép vì chúng ta đang thêm các giá trị số và chuỗi (string) vào tuple và chúng hợp lệ với tuple là employee.

Bây giờ, hãy thử thêm một giá trị boolean vào tuple.


employee.push(true) 

Ví dụ trên sẽ xuất hiện lỗi sau:

test.ts(4,15): error TS2345: 
Argument of type 'true' is not assignable to parameter of type 'number | string'.

Chúng tôi gặp lỗi khi nói rằng thêm giá trị boolean vào một tuple có kiểu dữ liệu là 'number | string 'không được phép. Do đó, một tuple được khai báo là 'number | string 'chỉ có thể lưu trữ các giá trị số và chuỗi.

Tuple giống như một mảng. Vì vậy, chúng ta có thể sử dụng các phương thức của mảng trên tuple như pop(), concat(), v.v.


var employee: [number, string] = [1, "Steve"];

// retrieving value by index and performing an operation 
employee[1] = employee[1].concat(" Jobs"); 
console.log(employee); //Output: [1, 'Steve Jobs']

Learning English Everyday