TypeScript: 元組型別(tuple)和列舉型別(enum)
阿新 • • 發佈:2021-01-09
技術標籤:TypeScripttypescript
目錄
1. 元組型別(tuple)
元組型別屬於陣列型別的一種,允許表示一個已知元素數量和型別的陣列,各元素的型別不必相同。
let arr:[number, boolean, string] = [3.14, true, "hello"];
當訪問一個已知索引的元素,會得到正確的型別。
let arr:[number, boolean, string] = [3.14, true, "hello"];
arr[2]. substring(1, 4); // ell
arr[1].substring(1, 4); // 報錯,布林值沒有 substring 方法
2. 列舉型別(enum)
列舉型別可以為一組數值賦予友好的名字,常用來定義一些識別符號,方式如下
// 定義一個列舉型別 mysex
enum mysex {
man = 1,
woman = 2,
unknow = 3,
};
// 宣告 jack 變數為列舉型別 mysex 中的 man
let jack:mysex = mysex.man;
console.log(jack);
編譯成功後,輸出結果如下
與 JavaScript 同理,也可以直接輸出列舉型別的值。
// 定義一個列舉型別 mysex
enum mysex {
man = 1,
woman = 2,
unknow = 3,
};
console.log(mysex.unknow);
結果如下
如果定義一個列舉型別時,全部不進行賦值。則列舉型別中的值,就是對應的索引值。
enum fruit {
apple,
pear,
banana,
};
console.log(fruit.banana);
輸出結果如下:
沒有賦值的情況下,下一項的值為:上一項的值 + 1,所以如果中間某一項擁有值,則會影響後面未賦值的項。
enum fruit {
apple,
pear = 9,
banana,
};
console.log(fruit.banana);
結果如下
如果 pear 賦值為其他型別,則 banana 必須賦值,否則會報錯。