TypeScript 元組 (Tuples)
型別化陣列
元組 (tuple) 是一種型別化的 陣列,它具有預定義的長度和每個索引的型別。
元組之所以很棒,是因為它們允許陣列中的每個元素都是已知型別的。值。
要定義元組,請指定陣列中每個元素的型別
示例
// 定義我們的元組
let ourTuple: [number, boolean, string];
// 正確初始化
ourTuple = [5, false, 'Coding God was here'];
自己動手試一試 »
正如您所見,我們有一個數字、一個布林值和一個字串。但是,如果我們嘗試按錯誤的順序設定它們會怎樣?
示例
// 定義我們的元組
let ourTuple: [number, boolean, string];
// 錯誤初始化,會引發錯誤
ourTuple = [false, 'Coding God was mistaken', 5];
自己動手試一試 »
即使我們擁有 boolean
、string
和 number
,它們在我們的元組中的順序也很重要,並且會引發錯誤。
只讀元組
最佳實踐是使您的元組 readonly
。
元組僅對初始值具有強型別定義
示例
// 定義我們的元組
let ourTuple: [number, boolean, string];
// 正確初始化
ourTuple = [5, false, 'Coding God was here'];
// 對於索引 3+,我們的元組沒有型別安全
ourTuple.push('Something new and wrong');
console.log(ourTuple);
自己動手試一試 »
您會看到新值元組僅對初始值具有強型別定義
示例
// 定義我們的只讀元組
const ourReadonlyTuple: readonly [number, boolean, string] = [5, true, 'The Real Coding God'];
// 因為它是隻讀的,所以會引發錯誤。
ourReadonlyTuple.push('Coding God took a day off');
自己動手試一試 »
要了解有關 readonly
等訪問修飾符的更多資訊,請訪問我們有關它們的章節:TypeScript 類。
如果您以前使用過 React,那麼您很可能接觸過元組。
useState
返回一個由值和設定器函式組成的元組。
常見的例子是 const [firstName, setFirstName] = useState('Dylan')
。
由於這種結構,我們知道列表中的第一個值將是特定型別的值,在本例中是 string
,第二個值是 function
。
命名元組
命名元組允許我們為每個索引處的值提供上下文。
示例
const graph: [x: number, y: number] = [55.2, 41.3];
命名元組為我們的索引值代表的內容提供了更多上下文。
解構元組
由於元組是陣列,因此我們也可以解構它們。
示例
const graph: [number, number] = [55.2, 41.3];
const [x, y] = graph;
要複習解構,請在此處檢視:此處。