初學者這樣玩 TypeScript,遲早進大廠系列,mongodb視頻教程

程序員ioms 2021-09-20 03:01:30 阅读数:166

typescript 系列 mongodb 教程

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);


#### [](
)5\. TypeScript 枚舉類型
* 枚舉類型是TS為JS擴展的一種類型, 在原生的JS中是沒有枚舉類型的

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

/*

枚舉用於錶示固定的幾個取值

例如: 一年只有四季、人的性別只能是男或者女

*/

enum Gender{ // 定義了一個名稱叫做Gender的枚舉類型, 這個枚舉類型的取值有兩個, 分別是Male和Femal

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["Male"] = 0] = "Male";
Gender[Gender["Femal"] = 1] = "Femal";

})(Gender || (Gender = {}));

let Gender = {};

Gender[“Male”] = 0;

Gender[0] = “Male”;

Gender[“Femal”] = 1;

Gender[1] = “Femal”;

  • */

#### [](
)6\. any-void類型

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

// 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 {

console.log("hello world");

}

test();

let value:void; // 定義了一個不可以保存任意類型數據的變量, 只能保存null和undefined

// value = 123; // 報錯

// value = “abc”;// 報錯

// value = true;// 報錯

// 注意點: null和undefined是所有類型的子類型, 所以我們可以將null和undefined賦值給任意類型

// value = null; // 不會報錯

value = undefined;// 不會報錯


#### [](
)7\. Never-object類型

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

// 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);


#### [](
)8\. 類型斷言
* 什麼是類型斷言?
* TS中的類型斷言和其它編程語言的類型轉換很像, 可以將一種類型强制轉換成另外一種類型
* 類型斷言就是告訴編譯器, 你不要幫我們檢查了, 相信我,我知道自己在幹什麼。

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

/*

例如: 我們拿到了一個any類型的變量, 但是我們明確的知道這個變量中保存的是字符串類型

 此時我們就可以通過類型斷言告訴編譯器, 這個變量是一個字符串類型
此時我們就可以通過類型斷言將any類型轉換成string類型, 使用字符串類型中相關的方法了
  • */

let str:any = ‘it666’;

本次面試答案,以及收集到的大廠必問面試題分享:

初學者這樣玩 TypeScript,遲早進大廠系列,mongodb視頻教程_後端

 CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】

版权声明:本文为[程序員ioms]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210920030129993k.html