成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文看懂 | 關(guān)于 TypeScript 總結(jié)

開(kāi)發(fā) 后端
TypeScript 是微軟開(kāi)發(fā)的一個(gè)開(kāi)源的編程語(yǔ)言,通過(guò)在 JavaScript 的基礎(chǔ)上添加靜態(tài)類型定義構(gòu)建而成。

[[414624]]

TypeScript 是微軟開(kāi)發(fā)的一個(gè)開(kāi)源的編程語(yǔ)言,通過(guò)在 JavaScript 的基礎(chǔ)上添加靜態(tài)類型定義構(gòu)建而成。

TypeScript 更具表現(xiàn)力,這意味著它的語(yǔ)法混亂更少,由于高級(jí)調(diào)試器專注于在編譯時(shí)之前捕獲邏輯錯(cuò)誤,因此調(diào)試很容易,靜態(tài)類型使 TypeScript 比 JavaScript 動(dòng)態(tài)類型更易于閱讀和結(jié)構(gòu)化,由于通用的轉(zhuǎn)譯,它可以跨平臺(tái)使用,在客戶端和服務(wù)器端項(xiàng)目中。

TypeScript 通過(guò) TypeScript 編譯器或 Babel 轉(zhuǎn)譯為 JavaScript 代碼,可運(yùn)行在任何瀏覽器,任何操作系統(tǒng),當(dāng)前穩(wěn)定版本為 4.2.3 版本。

TypeScript 的主要特點(diǎn)是什么?

跨平臺(tái)性:

TypeScript 編譯器可以安裝在任何操作系統(tǒng)上,包括 Windows、macOS 和 Linux;

支持 ES6 特性:

TypeScript 包含計(jì)劃中的 ECMAScript 2015(ES6) 的大部分特性,例如箭頭函數(shù);

面向?qū)ο缶幊趟枷耄?/h3>

TypeScript 提供所有標(biāo)準(zhǔn)的 OOP 功能,如類、接口和模塊;

嚴(yán)格的靜態(tài)類型檢查:

TypeScript 使用靜態(tài)類型并幫助在編譯時(shí)進(jìn)行類型檢查,因此,你可以在編寫(xiě)代碼時(shí)發(fā)現(xiàn)編譯時(shí)錯(cuò)誤,而無(wú)需運(yùn)行腳本;

可選的靜態(tài)類型:

如果你習(xí)慣了 JavaScript 的動(dòng)態(tài)類型(在使用變量的時(shí)候可以根據(jù)傳值改變變量的數(shù)據(jù)類型),TypeScript 還允許可選的靜態(tài)類型(在變量后面添加冒號(hào)+數(shù)據(jù)類型,在使用中不可以改變其數(shù)據(jù)類型,否則報(bào)錯(cuò));

DOM 操作:

您可以使用 TypeScript 來(lái)操作 DOM 添加或刪除客戶端網(wǎng)頁(yè)元素;

全局作用域:

在任何類之外定義,可以在程序中的任何地方使用;

函數(shù)/類范圍:

在函數(shù)或類中定義的變量可以在該范圍內(nèi)的任何地方使用;

局部作用域/代碼塊:

在局部作用域中定義的變量可以在該塊中的任何地方使用;

TypeScript 內(nèi)置數(shù)據(jù)類型

數(shù)字類型:

用于表示數(shù)字類型的值,TypeScript 中的所有數(shù)字都存儲(chǔ)為浮點(diǎn)值;

  1. let decLiteral: number = 6; // 十進(jìn)制 
  2. let hexLiteral: number = 0xf00d; // 十六進(jìn)制 
  3. let binaryLiteral: number = 0b1010; // 二進(jìn)制 
  4. let octalLiteral: number = 0o744; // 八進(jìn)制 

布爾類型:

一個(gè)邏輯二進(jìn)制開(kāi)關(guān),只能包含 true 或 false;

  1. let isTrue:boolean = true

字符串類型:

可以用單引號(hào)(')和雙引號(hào)(")來(lái)表示字符串類型,除此之外還支持使用模板字符串反引號(hào)(`)來(lái)定義多行文本和內(nèi)嵌表達(dá)式,使用 ${ expr } 的形式嵌入變量或表達(dá)式;

  1. let name:string = 'Tom'
  2. let city:string = 'Beijing'
  3. let content:string = `他叫 ${ name } 生活在 ${ city }`; 

數(shù)組類型:

TypeScript 數(shù)組的操作類似于 JavaScript 中數(shù)組的操作,TypeScript 建議最好只為數(shù)組元素賦予一種類型的值,定義數(shù)組有兩種寫(xiě)法;

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

對(duì)象類型:

object 對(duì)象類型可以用于描述一個(gè)對(duì)象;

  1. const people: object = { 
  2.   name"Tom"
  3.   age: 20, 
  4.   city: 'Beijing'
  5. console.log('他叫 ${people.name} ,他住在${people.city}'); 

symbol類型:

在 ES5 中,如果我們是不可以在對(duì)象中添加相同的屬性名稱的,但是我們也可以通過(guò) symbol 來(lái)定義相同的名稱,因?yàn)?Symbol 函數(shù)返回的是不同的值;

  1. const s1 = Symbol("identity"); 
  2. const s2 = Symbol("identity"); 
  3.  
  4. // 一個(gè)人多個(gè)身份 
  5. const person = { 
  6.   [s1]: "校長(zhǎng)"
  7.   [s2]: "化學(xué)老師"

元祖類型:

元組類型用來(lái)表示已知數(shù)量和類型的數(shù)組,各元素的類型不必相同;

  1. let x : [string,number]; 
  2. x = ['Angular',5]; // 正確 
  3. x = [5,'Angular']; // 報(bào)錯(cuò) 

枚舉類型:

枚舉是一個(gè)可被命名的整型常數(shù)的集合,枚舉類型為集合成員賦予有意義的名稱增強(qiáng)可讀性;

  1. // 枚舉類型默認(rèn)下標(biāo)是0 
  2. enum Color { red, yellow, blue }; 
  3. let c: Color = Color.blue; 
  4. console.log(c); // 2 
  5. // 手動(dòng)設(shè)置枚舉下標(biāo) 
  6. enum Color { red = 1, yellow = 2, blue = 3 }; 
  7. let c: Color = Color.blue; 
  8. console.log(c); // 3 

任意值類型:

任意值是 TypeScript 針對(duì)編程時(shí)類型不明確的變量使用的一種數(shù)據(jù)類型,常用于以下三種;

值可能來(lái)自于動(dòng)態(tài)的內(nèi)容,比如來(lái)自用戶輸入或第三方代碼庫(kù)。 這種情況下,我們不希望類型檢查器對(duì)這些值進(jìn)行檢查而是直接讓它們通過(guò)編譯階段的檢查; 

  1. let x: any = 123456; 
  2. x = 'becomes a string'
  3. x = false

允許你在編譯時(shí)可選擇地包含或移除類型檢查; 

  1. let x: any = 4; 
  2. x.toFixed(); // 正確,并不檢查是否存在 

定義儲(chǔ)存各種類型數(shù)據(jù)的數(shù)組時(shí); 

  1. let arrarList: any[] = [1,'qwe',true]; 

null 與 undefined 類型:

默認(rèn)情況下 null 和 undefined 是所有類型的子類型。 就是說(shuō)你可以把 null 和 undefined 賦值給 number 類型的變量;

然而,如果啟用 -- strictNullChecks,就可以使得 null 和 undefined 只能被賦值給 void 或本身對(duì)應(yīng)的類型; 

  1. let x: number; 
  2. x = 1; 
  3. x = null; // 正確 
  4.  
  5. // 啟用 --strictNullChecks 
  6. let y: number; 
  7. y = 1; 
  8. y = null; // 錯(cuò)誤 

void 類型:

使用 void 表示沒(méi)有任何類型,例如一個(gè)函數(shù)沒(méi)有返回值,意味著返回void; 

  1. function sayHello(): void{ 
  2.   console.log('I said hello'); 

naver 類型:

never 是其他類型(包括 null 和 undefined )的子類型,代表從不會(huì)出現(xiàn)的值,這意味著聲明為 never 類型的變量只能被 never 類型所賦值,在函數(shù)中通常表示為拋出異常或無(wú)法執(zhí)行到終止點(diǎn); 

  1. let x: never; 
  2. let y: number; 
  3.  
  4. x = 123; // 報(bào)錯(cuò) 
  5. y = x; // 正確 

編譯 TypeScript 文件

編譯 TypeScript 文件需要安裝 TypeScript 編譯器,使用以下指令安裝并運(yùn)行 ts; 

  1. npm install typescript -g 
  2. cd到指定目錄下 
  3. tsc typescript_test.ts 

使用 TypeScript 創(chuàng)建變量

由于支持 ES6 語(yǔ)法,創(chuàng)建變量方式有 var、let、const 三種; 

  1. var name:string = 'Tom'

var 是嚴(yán)格范圍變量的舊風(fēng)格。你應(yīng)該盡可能避免使用,var 因?yàn)樗鼤?huì)在較大的項(xiàng)目中導(dǎo)致問(wèn)題; 

  1. let num:number = 123; 

let 是在 TypeScript 中聲明變量的默認(rèn)方式。與 var 相比,let 減少了編譯時(shí)錯(cuò)誤的數(shù)量并提高了代碼的可讀性;

  1. const arr:Array<number> = [12,43]; 

const 創(chuàng)建一個(gè)其值不能改變的常量(如果創(chuàng)建的是引用類型,則可以改變其內(nèi)部的值),它使用相同的范圍規(guī)則,let并有助于降低整體程序的復(fù)雜性;

TypeScript 接口

接口為使用該接口的對(duì)象定義契約或結(jié)構(gòu),接口是用關(guān)鍵字定義的 interface,它可以包含使用函數(shù)或箭頭函數(shù)的屬性和方法聲明; 

  1. interface staffInfo { 
  2.   staffCode: number; 
  3.   staffName: string; 
  4.   getSalary: (number) => number; 
  5.   getLeaderName(number): string;  

TypeScript 函數(shù)重載

要在 TypeScript 重載函數(shù),只需創(chuàng)建兩個(gè)名稱相同但參數(shù)/返回類型不同的函數(shù),兩個(gè)函數(shù)必須接受相同數(shù)量的參數(shù)。這是 TypeScript 中多態(tài)性的重要組成部分,例如,你可以創(chuàng)建一個(gè)add函數(shù),如果它們是數(shù)字,則將兩個(gè)參數(shù)相加,如果它們是字符串,則將它們連接起來(lái),白話意思就是一個(gè)方法傳不同參數(shù),獲取到不同的返回值; 

  1. function add(a:string, b:string):string; 
  2. function add(a:number, b:number): number; 
  3. function add(a: any, b:any): any { 
  4.   return a + b; 
  5. add("Hello ""Steve"); // Hello Steve 
  6. add(10, 20); // 30 

TypeScript 模塊

TypeScript 中的模塊是相關(guān)變量、函數(shù)、類和接口的集合,你可以將模塊視為包含執(zhí)行任務(wù)所需的一切的容器,可以導(dǎo)入模塊以輕松地在項(xiàng)目之間共享代碼; 

  1. module addFun { 
  2.   class Add { 
  3.     export add(x, y) { 
  4.       return x+y; 
  5.     } 
  6.   } 

TypeScript 類

類表示一組相關(guān)對(duì)象的共享行為、屬性和方法,例如,一個(gè)學(xué)生類 Student。 

  1. class Student {     
  2.   stuNum: number;     
  3.   stuName: string;     
  4.   constructor(num: number, name: string) {     
  5.     this.stuName = name
  6.     this.stuNum = num; 
  7.   } 

TypeScript 與 JavaScript 比較

TypeScript 是 JavaScript 的開(kāi)源語(yǔ)法超集,可編譯為 JavaScript,所有原始 JavaScript 庫(kù)和語(yǔ)法仍然有效,但 TypeScript 增加了 JavaScript 中沒(méi)有的額外語(yǔ)法選項(xiàng)和編譯器功能。TypeScript 還可以與大多數(shù)與 JavaScript 相同的技術(shù)接口,例如 Vue 和 jQuery。

 

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2020-03-31 14:40:24

HashMap源碼Java

2016-08-18 00:21:12

網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)絡(luò)

2024-08-12 12:30:27

2019-07-01 09:22:15

Linux操作系統(tǒng)硬件

2019-05-22 09:50:42

Python沙箱逃逸網(wǎng)絡(luò)攻擊

2025-01-20 09:15:00

iOS 18.3蘋(píng)果iOS 18

2021-02-08 22:23:16

云計(jì)算辦公硬件

2022-03-29 08:02:01

數(shù)字孿生能源程序

2023-07-14 08:00:00

ORMRust ORMSQL

2025-06-27 02:15:00

芯片流程數(shù)字芯片

2025-03-25 09:06:11

2021-05-11 10:40:29

JUCAQSJava

2021-05-12 15:16:17

JUCAQSJava

2021-02-21 11:25:17

云計(jì)算IaaSPaaS

2022-04-26 13:41:16

區(qū)塊鏈比特幣數(shù)據(jù)庫(kù)

2024-10-10 17:55:57

LinuxACL訪問(wèn)控制列表

2023-04-10 11:35:31

評(píng)估模型業(yè)務(wù)流程

2024-12-30 07:30:00

PLC通訊協(xié)議

2023-12-18 10:45:31

2019-02-13 15:38:09

存儲(chǔ)虛擬化云計(jì)算
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 精品久久久久久久久久久久 | 亚洲精品一区国语对白 | 天天躁日日躁狠狠躁白人 | 久艹av| 美女爽到呻吟久久久久 | 久久国产亚洲 | 国产精品久久久免费 | 中文字幕av高清 | 国产一区欧美 | 在线免费观看毛片 | 一区二区免费 | 老司机精品福利视频 | 91精品国产91久久久久青草 | 一级毛片色一级 | 国产福利91精品 | 精品二区视频 | 国产日韩欧美二区 | 日韩中文字幕在线免费 | 91大神xh98xh系列全部 | 久久精品国产99国产精品 | 国产视频在线观看一区二区三区 | 永久av | 亚洲一区亚洲二区 | 天天色图 | 欧美精品一区二区免费视频 | 国产精品日韩在线观看 | 一级黄色片一级黄色片 | 亚洲国产日本 | 久草青青草 | 国产在线h | 99精品在线 | 免费黄色大片 | 国产黄视频在线播放 | 午夜精品久久久 | 久久亚 | 欧美精品网 | 久久久男人的天堂 | 欧美一区二区在线观看 | 日韩在线播放av | 成人小视频在线观看 | 看片wwwwwwwwwww |