精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

一起草最新网址| 日韩高清av电影| 久久国产露脸精品国产| 风间由美性色一区二区三区四区| 天天操天天干天天综合网| 麻豆蜜桃91| 99久久精品免费看国产交换| 一本色道久久综合| 精品国产欧美一区二区五十路 | 日韩av中文字幕一区二区三区| 中文字幕日韩有码| 日本国产在线视频| 欧美aaaaaa| 午夜精品久久久久久不卡8050| 亚洲精品一品区二品区三品区| 北条麻妃一二三区| 日韩在线a电影| 欧美激情xxxxx| 秋霞网一区二区三区| 亚洲va欧美va人人爽成人影院| 一本一道综合狠狠老| 日本一道在线观看| 1769视频在线播放免费观看| 成人激情校园春色| 成人免费大片黄在线播放| 色一情一乱一伦| 激情欧美一区| 美女精品视频一区| 9.1片黄在线观看| 欧美**字幕| 日韩欧美美女一区二区三区| 欧美女同在线观看| 电影一区二区三区| 午夜在线成人av| 成年丰满熟妇午夜免费视频 | 亚洲免费伊人电影| 色吧亚洲视频| 亚洲精品网站在线| 国产精品自在欧美一区| 国产在线视频2019最新视频| 免费一级a毛片| 久久精品网址| 欧美最猛性xxxxx(亚洲精品)| 国产一级片视频| 亚洲欧美亚洲| 久久久国产精品亚洲一区| 亚洲色图 激情小说| 国产精品免费大片| 亚洲欧洲av一区二区| 91精品国产自产| 你懂的在线观看一区二区| 亚洲二区在线播放视频| www.四虎在线| 欧美jizz19性欧美| 亚洲精品视频在线观看视频| av直播在线观看| 性人久久久久| 亚洲一级片在线看| 91成人精品一区二区| 日韩欧美视频在线播放| www日韩欧美| 可以免费看av的网址| 天天久久综合| 欧美成人激情图片网| 国产一级性生活| 在线午夜精品| 国产精品电影久久久久电影网| 啪啪小视频网站| 久久97超碰色| 91嫩草视频在线观看| 成人午夜视频一区二区播放| 成人av免费在线观看| 免费h精品视频在线播放| 国产福利小视频在线| 国产精品高潮久久久久无| 9l视频自拍9l视频自拍| а_天堂中文在线| 一本一道综合狠狠老| 在线观看免费不卡av| 精品国产亚洲一区二区在线观看| 日韩一区二区三区四区| 最新版天堂资源在线| 免费成人结看片| 久久久精品网站| 久久草视频在线| 日本麻豆一区二区三区视频| 91亚洲精品一区| 污污的视频网站在线观看| 久久久久久久久久久黄色| 亚洲天堂电影网| tube8在线hd| 欧美专区亚洲专区| 久久久久久无码精品人妻一区二区| 福利片在线一区二区| 亚洲日韩第一页| 青青草手机在线观看| 国产亚洲激情| 亚洲影院高清在线| 欧洲综合视频| 一区二区三区四区中文字幕| 欧美激情成人网| 日韩欧美中文在线观看| 亚洲无av在线中文字幕| 久久午夜无码鲁丝片| 丝袜诱惑亚洲看片| 福利精品视频| 在线免费av电影| 精品女同一区二区三区在线播放| 一级做a免费视频| 亚州综合一区| 久久成年人视频| av手机天堂网| 99麻豆久久久国产精品免费 | 久久黄色美女电影| 色视频欧美一区二区三区| 中文字幕久久久久久久| 国产精品欧美三级在线观看| 久久噜噜噜精品国产亚洲综合| 一级片一区二区三区| 99国产麻豆精品| 久久久久久久久久久综合| 欧美国产日韩电影| 亚洲精品久久久久久下一站 | 一区二区三区在线观看免费视频| 亚洲欧洲午夜| av色综合网| 动漫一区在线| 欧美浪妇xxxx高跟鞋交| 欧美性猛交xxxx乱| 亚洲影音一区| 国内精品视频在线播放| 日本三级在线观看网站| 欧美一级久久久| 亚洲二区在线播放| 美腿丝袜在线亚洲一区| 日韩欧美精品一区二区| 偷拍自拍在线看| 亚洲精品v欧美精品v日韩精品| 久久丫精品久久丫| 成人夜色视频网站在线观看| 欧美日韩dvd| 免费看一区二区三区| 久久精品亚洲一区| 91中文字幕在线播放| 中文字幕不卡的av| jizz欧美激情18| 国产区精品区| 国产精品成人v| 成年人在线视频免费观看| 91黄色免费看| 欧美亚洲国产另类| 国产福利在线免费| 青青草原一区二区| 国产裸体无遮挡| 中文字幕人成不卡一区| www.久久久精品| 我不卡伦不卡影院| 91日本在线观看| 欧洲成人综合网| 精品免费视频一区二区| 国产精品第一页在线观看| 国产成a人亚洲精品| 丁香花在线影院观看在线播放| 波多野结衣在线一区二区| 久久人人爽国产| 色久视频在线播放| 欧美中文字幕一区| 色偷偷www8888| 国产不卡高清在线观看视频| 精品久久久久久无码中文野结衣| 日本午夜精品| 国产精品27p| 自拍视频在线免费观看| 制服丝袜在线91| 日本少妇全体裸体洗澡| 国产午夜精品理论片a级大结局| 91制片厂毛片| 欧美日韩国内| 欧美精品久久久| 亚洲福利影视| 久久久亚洲国产| 清纯唯美亚洲色图| 欧美精品日日鲁夜夜添| 久久久久久久9999| 久久久精品国产99久久精品芒果 | 五月婷婷婷婷婷| 国产精品一区二区无线| 成年人观看网站| 婷婷久久国产对白刺激五月99| 国产日韩欧美亚洲一区| 91福利精品在线观看| 色综合久久久久久中文网| 你懂得网站在线| 91麻豆精品国产无毒不卡在线观看| 久青草视频在线观看| 久久精品网站免费观看| 色黄视频免费看| 视频在线观看一区| 9色porny| 国产精品黑丝在线播放| 精品国产免费一区二区三区| 四虎地址8848精品| 欧美在线视频免费观看| 69成人在线| 国产一区二区三区在线观看网站| 国产三级视频在线播放| 色哟哟亚洲精品| 国产一级二级毛片| 中文字幕一区二区三区在线播放 | 欧美午夜寂寞| 91影院在线免费观看视频| 一二三四视频在线中文| 九九热精品视频国产| 在线观看免费高清完整| 日韩精品高清视频| 精品人妻一区二区三区蜜桃| 欧美天堂一区二区三区| 中国一级特黄毛片| 一区二区三区国产豹纹内裤在线| 久久久久久成人网| 91视频免费看| 欧美xxxx×黑人性爽| 韩国午夜理伦三级不卡影院| 91精品无人成人www| 亚洲主播在线| www在线观看免费| 欧美日韩亚洲一区| 在线丝袜欧美日韩制服| 欧洲激情视频| 日本黄网免费一区二区精品| 天美av一区二区三区久久| 国产精品免费一区二区| 日本成人精品| 成人在线国产精品| 亚洲男人在线| 91精品久久久久久| 激情亚洲小说| 国产精品人成电影| 日韩精品麻豆| 国产精品9999| 日韩三区在线| 国产精品流白浆视频| 午夜精品成人av| 日韩美女毛茸茸| 新片速递亚洲合集欧美合集| 日韩免费观看av| 3d性欧美动漫精品xxxx软件| 国产成人亚洲精品| 香蕉成人影院| 91精品久久久久久久久久入口 | 成人av片网址| 好吊妞国产欧美日韩免费观看网站| www.成人av| 久久黄色影视| 欧美日韩在线观看一区二区三区| 久9久9色综合| 翔田千里亚洲一二三区| 久久免费av| 日本免费成人网| 91久久在线| 日本999视频| 蜜桃精品在线观看| 亚洲欧美日本一区二区| 国产不卡一区视频| 黄色片视频免费观看| 久久久亚洲欧洲日产国码αv| 少妇久久久久久久久久| 中国色在线观看另类| 男女性高潮免费网站| 亚洲午夜成aⅴ人片| 中文字幕亚洲精品在线| 色综合久久天天| 亚洲自拍偷拍另类| 精品国产91乱码一区二区三区 | 香蕉视频网站入口| 久久99精品一区二区三区| 亚洲国产欧美日韩在线| 99精品欧美一区二区三区小说| 精品国产无码在线观看| 综合久久国产九一剧情麻豆| 久久久久亚洲AV| 欧美丝袜美女中出在线| 免费视频久久久| 在线播放视频一区| 午夜视频福利在线观看| 正在播放国产一区| 白白色在线观看| 国产精品精品久久久| 视频在线观看免费影院欧美meiju| 国产尤物99| 午夜精品久久久久久久四虎美女版| 日韩精品一区二区三区四| 蜜桃伊人久久| 国产又粗又猛又爽又黄| 国产调教视频一区| 九九视频免费在线观看| 一本到三区不卡视频| www.成人免费视频| 国产一区二区三区久久精品| 性欧美ⅴideo另类hd| 国产精品电影在线观看| 97se亚洲| 国产91av视频在线观看| 国产日韩一区| 免费欧美一级片| 国产日韩av一区| 日韩成人在线免费视频| 欧美丰满嫩嫩电影| 成人午夜电影在线观看| 97avcom| 成人豆花视频| 午夜精品一区二区三区四区| 在线精品观看| 久久精品久久99| 国产欧美日韩在线观看| 日韩黄色精品视频| 日韩视频在线永久播放| a中文在线播放| 日本aⅴ大伊香蕉精品视频| 伊人精品综合| 一区二区视频在线观看| 久久综合中文| 亚洲の无码国产の无码步美| 亚洲男人的天堂在线观看| 国产裸体美女永久免费无遮挡| 日韩电影中文字幕av| av女在线播放| 国产免费高清一区| 亚洲性视频h| 欧美体内she精高潮| 国产精品福利电影一区二区三区四区 | 精品国产乱码久久久久久蜜坠欲下| 亚洲精品蜜桃久久久久久| 国产精品中文字幕日韩精品| av最新在线观看| 欧美三级日韩在线| freemovies性欧美| 国产精品久久久久久久app| 你微笑时很美电视剧整集高清不卡| 青青艹视频在线| 国产成人aaa| 国产一级片免费| 亚洲国产精品热久久| 2019中文字幕在线电影免费 | 伊人婷婷欧美激情| 国产特黄一级片| 久久69精品久久久久久久电影好| 久久久91麻豆精品国产一区| 超碰免费在线公开| 久久精品盗摄| 日本少妇高潮喷水xxxxxxx| 日本久久精品电影| 国产女人在线视频| 国产精品久久久久久五月尺| 色偷偷综合网| www.久久久久久久久久久| 自拍偷拍亚洲欧美日韩| 国产欧美日韩亚洲| 91精品亚洲一区在线观看| 亚洲欧美精品| 国产精品主播直播| 日本亚洲色大成网站www久久| 亚洲第一天堂av| 人人草在线视频| 视频在线观看成人| 精品在线播放午夜| 激情小说中文字幕| 日韩精品视频中文在线观看| 91精品韩国| 在线视频一二三区| 成人国产在线观看| 销魂美女一区二区| 播播国产欧美激情| 国内露脸中年夫妇交换精品| 女性隐私黄www网站视频| 国产精品成人免费精品自在线观看| 91成品人影院| 午夜精品理论片| 欧洲美女日日| 免费在线观看日韩av| 欧美日韩在线观看视频| 欧美天天影院| 成人欧美一区二区| 日韩中文欧美在线| 欧美特级一级片| 亚洲精品一区中文字幕乱码| 伦一区二区三区中文字幕v亚洲| 白白操在线视频| 国产亚洲制服色| 亚洲精品国产精品乱码不卡| 国产成人精品一区| 欧美精品九九| 少妇无套高潮一二三区| 日韩精品综合一本久道在线视频| 欧美电影网址| 男人的天堂avav| 国产精品国产精品国产专区不片 | 日韩电影在线观看中文字幕 | 91制片厂在线| 国产视频精品va久久久久久|