精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

【前端】你好,我叫TypeScript 01──數(shù)據(jù)類型

開發(fā) 前端
TypeScript并不是一門新的編程語言,它是Javscript的超集,即在JavaScript語言的基礎(chǔ)上添加了語言約束:可選的靜態(tài)類型和基于類的面向?qū)ο缶幊獭F鋵?shí)就是添加了靜態(tài)類型檢查,有了約束可以讓我們在開發(fā)過程中減少錯(cuò)誤代碼的書寫。

[[400025]]

前言

TypeScript是強(qiáng)類型語言,所以相比于JavaScript而言有著更強(qiáng)的語言規(guī)范約束能力,能夠讓我們的代碼可讀性更高。同時(shí)可以在編譯過程中進(jìn)行錯(cuò)誤校驗(yàn),提升了我們代碼的開發(fā)效率。

1.什么是Typescript?

TypeScript并不是一門新的編程語言,它是Javscript的超集,即在JavaScript語言的基礎(chǔ)上添加了語言約束:可選的靜態(tài)類型和基于類的面向?qū)ο缶幊獭F鋵?shí)就是添加了靜態(tài)類型檢查,有了約束可以讓我們在開發(fā)過程中減少錯(cuò)誤代碼的書寫。

TypeScript和JavaScript的關(guān)系如下:

TypeScript和JavaScript的區(qū)別:

2.兩分鐘上手TS開發(fā)

“工欲行其事,必先利其器”,說的就是在做事情之前,要做好所有的準(zhǔn)備。同樣的,我們要學(xué)習(xí)TS開發(fā),必須先安裝語言環(huán)境和編輯器工具。

安裝TypeScript

有兩種方式可以獲取TypeSscript工具:

  • 通過NPM進(jìn)行安裝
  • 安裝VScode的TypeScript插件

(1)NPM安裝:

  1. npm install -g typescript 

(2)驗(yàn)證TS安裝

  1. tsc -v 
  2. # Version 4.2.4 

(3)構(gòu)建TS文件 在編輯器中構(gòu)建一個(gè)TS文件test.ts:

  1. function addNum(num1:num,num2:num){ 
  2.   return num1 + num2; 
  3. console.log(addNum(1,2)); 
  4. //3 

(4)編譯代碼:

  1. tsc test.ts 

編譯得到JS代碼:

  1. "use strict"
  2. function addNum(num1, num2) { 
  3.     return num1 + num2; 
  4. console.log(addNum(1, 2)); 

3.基礎(chǔ)類型

3.1 Boolean類型

只有兩個(gè)值:true和false。

  1. let isTrue: boolean = true

3.2 Number類型

所有的數(shù)字都是浮點(diǎn)型,支持二進(jìn)制、八進(jìn)制、十進(jìn)制以及十六進(jìn)制字面量。

  1. // 數(shù)字類型,所有數(shù)字都是浮點(diǎn)型 
  2. let decLiteral: number = 10; 
  3. let hexLiteral: number = 0xf00d; 

3.3 String類型

TS可以使用雙引號( ")或單引號(')表示字符串。

  1. // 字符串,表示文本數(shù)據(jù)類型 
  2. let username: string = "yichuan"
  3. let like: string = `${yichuan} + FE`; 

3.4 Array類型

數(shù)組操作有兩種方式可以聲明:

  • 可以在元素類型后面接上 [],表示由此類型元素組成的一個(gè)數(shù)組。
  • 使用數(shù)組泛型,Array<元素類型>。

  1. let list: number[] = [1, 2, 3]; 
  2. let list: Array<number> = [1, 2, 3]; 

3.5 Tuple類型

元組類型允許表示一個(gè)已知元素?cái)?shù)量和類型的數(shù)組,各元素的類型不必相同。

  1. // 元組  
  2. let tuple: [string,number]; 
  3. tuple = ["wenbo",1]; 

TS元組和數(shù)組其實(shí)大致一樣,唯一的區(qū)別就是數(shù)組中的元素類型必須相同,而元組可以存儲不同類型的元素。甚至可以說元組是any類型的數(shù)組。

3.6 Enum類型

enum類型是對JavaScript標(biāo)準(zhǔn)數(shù)據(jù)類型的一個(gè)補(bǔ)充。枚舉類型提供的一個(gè)便利是你可以由枚舉的值得到它的名字。

  1. // 枚舉  
  2. // 默認(rèn)情況下,枚舉的元素編號是從0開始,也可以進(jìn)行手動編號。 
  3. enum Color {Red, Green, Blue}; 
  4. let c:Color = Color.Red; 

3.7 Any類型

any表示任意類型。有時(shí)候,我們會想要為那些在編程階段還不清楚類型的變量指定一個(gè)類型。

  1. // Any  
  2. let notSure:any = 100.002; 
  3. notSure.toFixed(); 
  4. let list3:any[] = ["zhaoshun","male",12]; 

其實(shí),any類型是類型系統(tǒng)的頂級類型,因?yàn)槿魏晤愋投細(xì)w結(jié)于any類型,是不是很自由。自由過了火,一個(gè)不恰當(dāng)?shù)谋扔鳎琂S是any類型的TS,允許對any類型的值進(jìn)行各種操作,而無需編譯校驗(yàn)。

3.8 Void類型

void類型它表示沒有任何類型。當(dāng)一個(gè)函數(shù)沒有返回值時(shí),你通常會見到其返回值類型是 void。

聲明一個(gè)void類型的變量沒有什么大用,因?yàn)槟阒荒転樗x予null和undefined。

  1. function showName():void { 
  2.   console.log("your name is wenbo"); 
  3.  
  4. // 聲明一個(gè)void類型的變量 
  5. let unusable: void = undefined; 

3.9 Null 和 Undefined

TypeScript里,undefined和null兩者各自有自己的類型分別叫做undefined和null。默認(rèn)情況下null和undefined是所有類型的子類型,可以把 null和undefined賦值給number類型的變量。

  1. let u: undefined = undefined; 
  2. let n: null = null

但是,當(dāng)指定了--strictNullChecks標(biāo)記,null和undefined只能賦值給void和它們各自。

3.10 Object

object表示非原始數(shù)據(jù)類型(除number,string,boolean,symbol,null或undefined之外的類型)。

  1. declare function create(o: object | null): void; 
  2.  
  3. create({ prop: 0 }); // OK 
  4. create(null); // OK 
  5.  
  6. create(42); // Error 
  7. create("string"); // Error 
  8. create(false); // Error 
  9. create(undefined); // Error 

3.11 Never

never類型表示的是那些永不存在的值的類型。

never類型是任何類型的子類型,也可以賦值給任何類型;然而,沒有類型是never的子類型或可以賦值給never類型(除了never本身之外)。即使 any也不可以賦值給never。

  1. // 返回never的函數(shù)必須存在無法達(dá)到的終點(diǎn) 
  2. function error(message: string): never { 
  3.     throw new Error(message); 
  4.  
  5. // 推斷的返回值類型為never 
  6. function fail() { 
  7.     return error("Something failed"); 
  8.  
  9. // 返回never的函數(shù)必須存在無法達(dá)到的終點(diǎn) 
  10. function infiniteLoop(): never { 
  11.     while (true) { 
  12.     } 

3.12 Unknown 類型

任何類型都可以被歸為unknow類型,因此unknow也是ts類型中的頂級類型。

  1. let value: unknown; 
  2.   
  3. value = true;             // OK 
  4. value = 18;               // OK 
  5. value = "yichuan";    // OK 
  6. value = [];               // OK 
  7. value = {};               // OK 
  8. value = Math.random;      // OK 
  9. value = null;             // OK 
  10. value = undefined;        // OK 
  11. value = new TypeError();  // OK 
  12. value = Symbol("type");   // OK 

我們看到對于value變量而言,所有的賦值都是正確的,就會感覺是不是發(fā)現(xiàn)和any好像沒啥區(qū)別,真的是這樣嗎。當(dāng)我們給賦值其他類型時(shí),就會出現(xiàn)意想不到的問題,發(fā)現(xiàn)unknow類型只能被賦值給any類型和unknow類型本身,這就是跟any的區(qū)別。

  1. let value: unknown; 
  2.   
  3. let value1: unknown = value;   // OK 
  4. let value2: any = value;       // OK 
  5. let value3: boolean = value;   // Error 
  6. let value4: number = value;    // Error 
  7. let value5: string = value;    // Error 
  8. let value6: object = value;    // Error 
  9. let value7: any[] = value;     // Error 
  10. let value8: Function = value;  // Error 

所以得到:只有能夠保存任意類型值的容器才能保存 unknown類型的值。

值得注意的是,TS不允許我們對unknow類型的值執(zhí)行任何操作,必須得先執(zhí)行類型校驗(yàn)后來確定使用值的范圍。那么如何縮小unknow值的范圍呢?

很簡單,有請我們的老朋友typeof、instanceof運(yùn)算符和自定義類型保護(hù)函數(shù),通過使用縮小類型范圍的技術(shù)都有助于 TypeScript 的基于控制流的類型分析。

例如,通過if語句分支

  1. function stringifyForLogging(value: unknown): string { 
  2.   if (typeof value === "function") { 
  3.     const functionName = value.name || "(anonymous)"
  4.     return `[function ${functionName}]`; 
  5.   } 
  6.   
  7.   if (value instanceof Date) { 
  8.     return value.toISOString(); 
  9.   } 
  10.   return String(value); 

通過使用自定義類型保護(hù)函數(shù)縮小 unknown 類型范圍。

  1. function isNumberArray(value: unknown): value is number[] { 
  2.   return ( 
  3.     Array.isArray(value) && 
  4.     value.every(element => typeof element === "number"
  5.   ); 
  6.   
  7. const unknownValue: unknown = [15, 23, 8, 4, 42, 16]; 
  8.   
  9. if (isNumberArray(unknownValue)) { 
  10.   const max = Math.max(...unknownValue); 
  11.   console.log(max); 

盡管 unknownValue 已經(jīng)被歸為 unknown 類型,請注意它如何依然在 if分支下獲取到 number[] 類型。

參考文章

阿寶哥的《重學(xué)TS》

《ts中文文檔》

本文轉(zhuǎn)載自微信公眾號「前端萬有引力」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端萬有引力公眾號。

 

責(zé)任編輯:姜華 來源: 前端萬有引力
相關(guān)推薦

2021-05-20 07:31:25

TypeScript前端數(shù)據(jù)類型

2021-06-17 09:32:17

前端TypeScript 技術(shù)熱點(diǎn)

2021-05-25 07:39:18

TypeScript 前端函數(shù)與類

2021-05-19 07:35:53

TypeScript變量和接口前端

2021-10-14 14:00:44

996加班工作

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2014-01-05 17:08:09

PostgreSQL數(shù)據(jù)類型

2016-08-18 14:13:55

JavaScript基本數(shù)據(jù)引用數(shù)據(jù)

2021-02-20 13:55:35

程序員計(jì)算機(jī)技術(shù)

2010-07-22 17:57:40

2021-03-12 08:02:34

Redis數(shù)據(jù)類型.

2010-10-15 13:28:34

MySql數(shù)據(jù)類型

2010-08-10 17:17:59

2017-07-10 13:38:07

MySQL數(shù)據(jù)類型整數(shù)類型

2022-03-07 05:53:41

線程CPU代碼

2013-07-30 14:00:46

.NET數(shù)據(jù)類型

2013-07-30 14:48:58

.NET數(shù)據(jù)類型

2010-08-11 09:14:33

DB2數(shù)據(jù)類型

2022-10-18 07:17:31

2024-03-14 11:54:37

C++數(shù)據(jù)類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产第一页在线观看| 中国黄色片视频| 97最新国自产拍视频在线完整在线看| 日韩高清一区在线| 精品国产一区二区在线| 欧美一级片在线免费观看| 日韩脚交footjobhdboots| 中文字幕乱码一区二区免费| 亚洲一区二区三区成人在线视频精品| 激情综合网五月婷婷| 国产成人手机高清在线观看网站| 欧美日韩一区视频| 岛国大片在线播放| 草碰在线视频| 成人91在线观看| 国产热re99久久6国产精品| 久久精品国产亚洲av麻豆色欲 | 黄色亚洲精品| 一本久久综合亚洲鲁鲁| 亚洲熟女乱综合一区二区| 免费成人美女女| 亚洲一区二区免费视频| 视频一区二区三区免费观看| 后进极品白嫩翘臀在线视频| 久久国产精品99精品国产| 91精品国产成人| 国产精品老熟女一区二区| 精品国产一区一区二区三亚瑟 | 国产日韩欧美夫妻视频在线观看 | 久久国产日韩| 久久久久久美女| 日韩一区二区不卡视频| 国产九一精品| 日韩精品亚洲视频| 女女调教被c哭捆绑喷水百合| 另类一区二区三区| 一本一本大道香蕉久在线精品| a天堂资源在线观看| 秋霞影院午夜丰满少妇在线视频| 久久精品视频在线看| 国产成人女人毛片视频在线| 国产精品欧美综合亚洲| 日韩成人午夜精品| 日韩av片免费在线观看| 久草视频在线观| 亚洲伦伦在线| 91国内在线视频| 日韩免费视频网站| 伊人久久亚洲影院| 国产69精品99久久久久久宅男| 欧美色图一区二区| 欧美成人有码| 久久久久久久97| 国产中文字幕免费| 欧美日韩国内| 欧美—级高清免费播放| 国产在线欧美在线| 亚洲精品欧洲| 97不卡在线视频| 国产精品99精品无码视| 99在线热播精品免费99热| 久久久久亚洲精品| 国产美女激情视频| 日韩电影在线观看网站| 国产精品旅馆在线| 国产一区二区麻豆| 国产很黄免费观看久久| 国产成人亚洲欧美| 青青九九免费视频在线| 国产欧美日本一区视频| 亚洲视频导航| 色黄网站在线观看| 亚洲成人黄色影院| 国产av无码专区亚洲精品| 欧洲精品一区二区三区| 欧美精品 日韩| 麻豆短视频在线观看| 久久久免费毛片| 亚洲精品视频二区| 我和岳m愉情xxxⅹ视频| 清纯唯美综合亚洲| 欧美另类老女人| 亚洲GV成人无码久久精品| 日韩成人一区二区| 91丝袜脚交足在线播放| 无码国产伦一区二区三区视频 | 亚洲精品国产拍免费91在线| 波多野吉衣中文字幕| 不卡一区综合视频| 成年无码av片在线| 国产精品自拍99| 国内精品写真在线观看| 国产女人水真多18毛片18精品| 欧洲视频在线免费观看| 中文字幕一区二区三中文字幕| 国产精品无码电影在线观看| 日日av拍夜夜添久久免费| 69堂精品视频| 一边摸一边做爽的视频17国产| 欧美日韩激情在线一区二区三区| 欧美成人一二三| av手机天堂网| 成人免费看的视频| 亚洲视频小说| 日本成人三级电影| 日韩一区二区三区视频| 性高潮久久久久久久| 国产精品mm| 国产日韩欧美视频| 欧美精品a∨在线观看不卡 | 国产aa精品| 亚洲欧美精品伊人久久| 国产一区二区视频在线观看免费| 老鸭窝毛片一区二区三区| 亚洲一区二区三区sesese| 黄色小视频在线免费观看| 亚洲摸摸操操av| 一区二区xxx| 无码日韩精品一区二区免费| 欧美精品少妇videofree| 国产黄色免费视频| av在线不卡网| 日本免费成人网| av日韩一区| 中文字幕亚洲无线码a| 成人免费区一区二区三区| 国产美女视频91| 一卡二卡3卡四卡高清精品视频| 欧美巨大丰满猛性社交| 日韩欧美国产成人一区二区| 日韩国产第一页| 美女mm1313爽爽久久久蜜臀| 日韩欧美精品一区二区| 在线毛片观看| 日韩h在线观看| 国产手机在线视频| 粉嫩aⅴ一区二区三区四区五区| 中文字幕一区二区三区最新| 国产伊人久久| 中文字幕亚洲欧美日韩在线不卡| 九九热最新视频| 久久久99久久精品欧美| 欧美黄网站在线观看| 三级小说欧洲区亚洲区| 5566成人精品视频免费| 日韩欧美在线番号| 日韩欧美高清视频| 中文精品在线观看| 久久成人一区| 日本视频一区在线观看| 国产精品无码久久久久| 中文字幕在线看视频国产欧美| 国产情侣免费视频| 欧美激情一区不卡| 亚洲欧美日韩三级| 亚洲精品va| 成人综合电影| 欧美久久天堂| 国产亚洲人成a一在线v站| 国产精品欧美综合| 国产精品国产自产拍在线| 国产精品v日韩精品v在线观看| 日韩在线理论| 91性高湖久久久久久久久_久久99| 久久精品视频免费看| 日韩一区二区三免费高清| 久久综合色综合| 91丝袜美腿高跟国产极品老师| 337p粉嫩大胆噜噜噜鲁| 国产一区二区三区四区二区| 国产在线观看不卡| 中文在线字幕免费观看| 亚洲精品456在线播放狼人| 欧美国产成人精品一区二区三区| 久久精品视频在线看| 性欧美在线视频| 韩日成人av| 欧美精品v日韩精品v国产精品| 福利视频亚洲| 欧美肥臀大乳一区二区免费视频| 无套内谢的新婚少妇国语播放| 色8久久人人97超碰香蕉987| 三级黄色在线观看| 成人性视频免费网站| 动漫av网站免费观看| 日本一二区不卡| 国产成人女人毛片视频在线| 91看片一区| 欧美激情视频免费观看| 精彩国产在线| 日韩一区二区在线免费观看| wwwxxx亚洲| 中文字幕一区二区三区在线不卡 | 国产欧美自拍一区| 国产精品大片wwwwww| 18视频在线观看网站| 亚洲男人天堂久| 99久久精品国产成人一区二区 | 欧美调教在线| 国产精品丝袜白浆摸在线| 四虎影视国产在线视频| 亚洲欧美一区二区三区在线| 99国产在线播放| 色婷婷综合激情| 国产无遮无挡120秒| 日韩一区在线看| 国产中年熟女高潮大集合| 国产成人综合精品三级| 中文字幕国产传媒| 亚洲三级免费| 天天操天天干天天玩| 久久不见久久见中文字幕免费| 国产99视频精品免费视频36| 成人国产一区| 清纯唯美日韩制服另类| 日本在线观看高清完整版| 色妞色视频一区二区三区四区| 头脑特工队2免费完整版在线观看| 欧美一区二区大片| 在线观看视频二区| 日本乱人伦一区| 欧美三级一区二区三区| 一区二区久久久久| 登山的目的在线| 国产精品毛片高清在线完整版 | 国产日产精品一区二区三区四区的观看方式 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 欧美日本中文| 97精品国产97久久久久久粉红| 成人激情诱惑| 欧美一区二区三区精美影视| 久久影院资源站| 好看的日韩精品| 久久久久97| 久久久7777| 欧美激情15p| 国产乱码精品一区二区三区不卡| 欧美经典一区| 91亚洲va在线va天堂va国| 亚洲高清影院| 91亚洲精品久久久| 国产日本亚洲| 91在线精品观看| 亚洲2区在线| www日韩av| 国产精品乱战久久久| 国产精品三区四区| 老司机精品在线| 精品日本一区二区三区在线观看| 红杏一区二区三区| 国产一区二区高清不卡| 同性恋视频一区| 日产精品高清视频免费| 精品国产91| 亚洲一区二区三区涩| 国产精品x453.com| 成人高清dvd| 日韩一级在线| 久久精品香蕉视频| 蓝色福利精品导航| 亚洲在线观看网站| 成人三级伦理片| 99久久久久久久久久| 91老司机福利 在线| 麻豆精品免费视频| 国产精品久久久久久亚洲伦| 免费中文字幕日韩| 亚洲成人av在线电影| 亚洲第一精品在线观看| 色94色欧美sute亚洲线路一ni | 大桥未久av一区二区三区中文| 国产免费一区二区三区最新6| 99精品1区2区| 在线视频第一页| 国产精品狼人久久影院观看方式| 日韩激情综合网| 亚洲不卡在线观看| 日日夜夜操视频| 制服.丝袜.亚洲.中文.综合| 黄色av中文字幕| 正在播放欧美视频| gogo在线高清视频| 欧美在线影院在线视频| 日韩三级一区| 久久久久无码国产精品一区| 久久五月天小说| 精品无码一区二区三区在线| 可以看av的网站久久看| 中文字幕久久av| 粉嫩av国产一区二区三区| 日韩欧美综合在线| 性感美女视频一二三| 中文字幕亚洲一区在线观看 | 丰满人妻熟女aⅴ一区| 亚洲欧美中文日韩在线| 3d玉蒲团在线观看| 国产成+人+综合+亚洲欧洲 | 蜜桃视频在线观看成人| 天天影视欧美综合在线观看| 黄www在线观看| 国产乱码精品一区二区三区av | 国产盗摄xxxx视频xxx69| 国产精品成人**免费视频| 久久一区免费| 亚洲国产综合久久| 亚洲午夜激情av| 在线观看国产精品入口男同| 亚洲成人网av| 国产精品久久久久久福利| 欧美在线一区二区三区四| av不卡一区二区| 精品国产无码在线| 日本中文字幕不卡| av黄色一级片| 一区二区三区中文在线| 中文字幕1区2区3区| 精品调教chinesegay| 黄页网站在线| 亚洲已满18点击进入在线看片 | 中文天堂在线资源| 亚洲国产欧美在线成人app | 在线免费黄色小视频| 欧美激情中文不卡| 亚洲av中文无码乱人伦在线视色| 精品精品欲导航| 日本三级韩国三级欧美三级| 91免费电影网站| 97精品97| 日韩肉感妇bbwbbwbbw| 91麻豆免费在线观看| 精品99在线观看| 欧美一区二区三级| 黄色av电影在线播放| 国产精品毛片a∨一区二区三区|国 | 91精品久久久久久蜜臀| freemovies性欧美| 国产成人中文字幕| 国产精品一区二区99| 色欲av无码一区二区人妻| 99re视频精品| 在线观看免费av片| 精品调教chinesegay| 亚洲黄色网址| 欧美一区二区影视| 久久一二三区| 欧美黄色一级生活片| 在线亚洲高清视频| 精品999视频| 国产狼人综合免费视频| 波多野结衣一区| 911福利视频| 一区二区三区日韩精品| 黄色片一区二区三区| 97免费在线视频| 精品一区免费| jizz大全欧美jizzcom| 中文字幕制服丝袜一区二区三区| 国产一区二区小视频| 欧美成人精品在线视频| 一区二区亚洲视频| 欧美成人三级在线视频| 91在线视频网址| 中国老头性行为xxxx| 日韩中文视频免费在线观看| 精品午夜av| 人妻夜夜添夜夜无码av| 久久这里都是精品| 一二三区中文字幕| 欧美老妇交乱视频| 欧美日韩一区二区三区不卡视频| 欧美成人免费高清视频| 中文字幕欧美区| 精品久久人妻av中文字幕| 欧美激情一区二区久久久| 西瓜成人精品人成网站| 艹b视频在线观看| 亚洲一区二区五区| 青青九九免费视频在线| 国产日韩欧美在线视频观看| 国产精品观看| a级片在线观看| 日韩一区二区在线观看| 欧美日韩在线观看首页| 亚洲一区二区精品在线| 成人午夜视频在线观看| 欧美另类高清videos的特点| 欧美成aaa人片免费看| 欧美一级色片| 午夜啪啪小视频| 日韩欧美极品在线观看| 4438x成人网全国最大| 欧美黑人3p| 国产剧情一区二区| 精品国产xxx| 欧美老女人性视频| 欧美三级美国一级| 一级黄色电影片| 欧美日本一区二区三区四区 | 91久久精品一区二区三| 亚洲区欧洲区|