Trong TypeScript, bạn có thể tạo một kiểu tuple readonly bằng cách sử dụng từ khóa readonly trước kiểu của từng phần tử trong tuple. Điều này có nghĩa là bạn sẽ không thể thay đổi các giá trị trong tuple sau khi nó đã được khởi tạo. Các tuple readonly rất hữu ích khi bạn muốn đảm bảo rằng dữ liệu không bị thay đổi sau khi nó được tạo ra.

Cách tạo kiểu Tuple Readonly

Dưới đây là cách bạn có thể tạo một kiểu tuple readonly:

  1. Sử dụng từ khóa readonly: Bạn có thể định nghĩa một tuple readonly bằng cách thêm readonly trước mỗi phần tử của tuple.

Ví dụ:

// Định nghĩa một tuple readonly
type ReadonlyTuple = readonly [number, string, boolean];

// Khởi tạo một tuple readonly
const myTuple: ReadonlyTuple = [42, "Hello", true];

// Thử thay đổi một giá trị trong tuple sẽ dẫn đến lỗi
// myTuple[0] = 100;  // Lỗi: Không thể gán giá trị mới cho tuple readonly

Trong ví dụ trên, ReadonlyTuple là một kiểu tuple readonly với ba phần tử: một số, một chuỗi, và một boolean. Khi cố gắng thay đổi bất kỳ phần tử nào trong myTuple, TypeScript sẽ đưa ra lỗi.

Sử dụng Tuple Readonly trong Hàm

Bạn cũng có thể sử dụng tuple readonly như một tham số trong hàm:

function logTuple(tuple: readonly [number, string]) {
    console.log(`Number: ${tuple[0]}, String: ${tuple[1]}`);
}

const myTuple: ReadonlyTuple = [10, "TypeScript"];
logTuple(myTuple);  // Hợp lệ
// myTuple[1] = "JavaScript";  // Lỗi: không thể thay đổi

Sự khác biệt giữa Tuple Thông thường và Tuple Readonly

  • Tuple Thông thường: Bạn có thể thay đổi giá trị của các phần tử trong tuple sau khi đã khởi tạo.
  • Tuple Readonly: Bạn không thể thay đổi giá trị của các phần tử trong tuple sau khi đã khởi tạo. Điều này đảm bảo tính không thay đổi (immutability) của dữ liệu.

Kết luận

Tạo một kiểu tuple readonly trong TypeScript rất đơn giản và hữu ích khi bạn muốn bảo vệ dữ liệu khỏi việc bị thay đổi sau khi khởi tạo. Bằng cách sử dụng từ khóa readonly, bạn có thể định nghĩa một tuple mà các giá trị của nó không thể được thay đổi, giúp tăng tính an toàn và ổn định của mã.