程序員ioms 2021-09-20 03:01:30 阅读数:166
arr4 = [1, ‘b’, false];
console.log(arr4);
// 元祖類型
// TS中的元祖類型其實就是數組類型的擴展
// 元祖用於保存定長定數據類型的數據
let arr5:[string, number, boolean]; // 錶示定義了一個名稱叫做arr5的元祖, 這個元祖中將來可以存儲3個元素, 第一個元素必須是字符串類型, 第二個元素必須是數字類型, 第三個元素必須是布爾類型
arr5 = [‘a’, 1, true];
// arr5 = [‘a’, 1, true, false]; // 超過指定的長度會報錯
arr5 = [‘a’, 1, true];
console.log(arr5);
/*
枚舉用於錶示固定的幾個取值
例如: 一年只有四季、人的性別只能是男或者女
*/
enum Gender{ // 定義了一個名稱叫做Gender的枚舉類型, 這個枚舉類型的取值有兩個, 分別是Male和Femal
}
let val:Gender; // 定義了一個名稱叫做val的變量, 這個變量中只能保存Male或者Femal
val = Gender.Male;
val = Gender.Femal;
// val = ‘nan’; // 報錯
// val = false;// 報錯
// 注意點: TS中的枚舉底層實現的本質其實就是數值類型, 所以賦值一個數值不會報錯
// val = 666; // 不會報錯
// console.log(Gender.Male); // 0
// console.log(Gender.Femal);// 1
// 注意點: TS中的枚舉類型的取值, 默認是從上至下從0開始遞增的
// 雖然默認是從0開始遞增的, 但是我們也可以手動的指定枚舉的取值的值
// 注意點: 如果手動指定了前面枚舉值的取值, 那麼後面枚舉值的取值會根據前面的值來遞增
// console.log(Gender.Male); // 6
// console.log(Gender.Femal);// 7
// 注意點: 如果手動指定了後面枚舉值的取值, 那麼前面枚舉值的取值不會受到影響
// console.log(Gender.Male); // 0
// console.log(Gender.Femal);// 6
// 注意點: 我們還可以同時修改多個枚舉值的取值, 如果同時修改了多個, 那麼修改的是什麼最後就是什麼
// console.log(Gender.Male); // 8
// console.log(Gender.Femal);// 6
// 我們可以通過枚舉值拿到它對應的數字
console.log(Gender.Male); // 0
// 我們還可以通過它對應的數據拿到它的枚舉值
console.log(Gender[0]); // Male
// 探究底層實現原理
/*
var Gender;
(function (Gender) {
// Gender[key] = value;
})(Gender || (Gender = {}));
let Gender = {};
Gender[“Male”] = 0;
Gender[0] = “Male”;
Gender[“Femal”] = 1;
Gender[1] = “Femal”;
// any類型
// any錶示任意類型, 當我們不清楚某個值的具體類型的時候我們就可以使用any
// 一般用於定義一些通用性比較强的變量, 或者用於保存從其它框架中獲取的不確定類型的值
// 在TS中任何數據類型的值都可以負責給any類型
// let value:any; // 定義了一個可以保存任意類型數據的變量
// value = 123;
// value = “abc”;
// value = true;
// value = [1, 3, 5];
// void類型
// void與any正好相反, 錶示沒有任何類型, 一般用於函數返回值
// 在TS中只有null和undefined可以賦值給void類型
function test():void {
}
test();
let value:void; // 定義了一個不可以保存任意類型數據的變量, 只能保存null和undefined
// value = 123; // 報錯
// value = “abc”;// 報錯
// value = true;// 報錯
// 注意點: null和undefined是所有類型的子類型, 所以我們可以將null和undefined賦值給任意類型
// value = null; // 不會報錯
value = undefined;// 不會報錯
// Never類型
// 錶示的是那些永不存在的值的類型
// 一般用於拋出异常或根本不可能有返回值的函數
// function demo():never {
// throw new Error(‘報錯了’);
// }
// demo();
// function demo2():never {
// while (true){}
// }
// demo2();
// Object類型
// 錶示一個對象
let obj:object; // 定義了一個只能保存對象的變量
// obj = 1;
// obj = “123”;
// obj = true;
obj = {name:‘lnj’, age:13};
console.log(obj);
/*
例如: 我們拿到了一個any類型的變量, 但是我們明確的知道這個變量中保存的是字符串類型
let str:any = ‘it666’;
版权声明:本文为[程序員ioms]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210920030129993k.html