為您提供行業(yè)資訊、活動(dòng)公告、產(chǎn)品發(fā)布,匯聚最前沿流行的云計算技術(shù)
typescript數據類(lèi)型有哪些?typescript是微軟開(kāi)發(fā)的一個(gè)開(kāi)源的編程語(yǔ)言,通過(guò)在JavaScript的基礎上添加靜態(tài)類(lèi)型定義構建而成。TypeScript支持與JavaScript幾乎相同的數據類(lèi)型,此外還提供了實(shí)用的枚舉類(lèi)型方便我們使用。本文將對TypeScript的基本數據類(lèi)型做個(gè)簡(jiǎn)單介紹。 布爾類(lèi)型(boolean)true / false 最基本的數據類(lèi)型就是簡(jiǎn)單的true/false值,在JavaScript和TypeScript里叫做boolean(其它語(yǔ)言中也一樣)。 let isDone: boolean = false isDone = true //正確寫(xiě)法 isDone = 12 //錯誤寫(xiě)法 數字類(lèi)型(number) 和JavaScript一樣,TypeScript里的所有數字都是浮點(diǎn)數。 這些浮點(diǎn)數的類(lèi)型是number。 除了支持十進(jìn)制和十六進(jìn)制字面量,TypeScript還支持ECMAScript 2015中引入的二進(jìn)制和八進(jìn)制字面量。 let decLiteral: number = 6; let hexLiteral: number = 0xf00d; let binaryLiteral: number = 0b1010; let octalLiteral: number = 0o744; 字符串類(lèi)型(string) JavaScript程序的另一項基本操作是處理網(wǎng)頁(yè)或服務(wù)器端的文本數據。 像其它語(yǔ)言里一樣,我們使用string表示文本數據類(lèi)型。 和JavaScript一樣,可以使用雙引號(”)或單引號(’)表示字符串。 let name str: string = “jack” name = “smith” 你還可以使用模版字符串,它可以定義多行文本和內嵌表達式。 這種字符串是被反引號包圍(`),并且以${ uname }這種形式嵌入表達式。 let uname: string = `Gene` let sentence: string = `Hello, my name is ${ uname }` 數組類(lèi)型(array) TypeScript像JavaScript一樣可以操作數組元素。 有兩種方式可以定義數組。第一種,可以在元素類(lèi)型后面接上[],表示由此類(lèi)型元素組成的一個(gè)數組: let list: number[] = [1, 2, 3]; //這里只能寫(xiě)數字類(lèi)型 let list: string[] = [‘red’, ‘blue’, ‘yellow’]; //這里只能寫(xiě)字符串類(lèi)型 第二種方式是使用數組泛型,Array<元素類(lèi)型>: let list: Array = [1, 2, 3]; //這里只能寫(xiě)數字類(lèi)型 let list: Array = [‘red’, ‘blue’, ‘yellow’]; //這里只能寫(xiě)字符串類(lèi)型 元組類(lèi)型(tuple) 元組類(lèi)型允許表示一個(gè)已知元素數量和類(lèi)型的數組,各元素的類(lèi)型不必相同。 比如,你可以定義一對值分別為string和number類(lèi)型的元組。 let x: [string, number]; x = [‘hello’, 10] //正確寫(xiě)法 x = [10, ‘hello’] //錯誤寫(xiě)法 官方文檔給出了一些拓展:當訪(fǎng)問(wèn)一個(gè)已知索引的元素,會(huì )得到正確的類(lèi)型 console.log(x[0].substr(1)); // OK console.log(x[1].substr(1)); // Error, ‘number’ does not have ‘substr’ 當訪(fǎng)問(wèn)一個(gè)越界的元素,會(huì )使用聯(lián)合類(lèi)型替代: x[3] = ‘world’; // OK, 字符串可以賦值給(string | number)類(lèi)型 console.log(x[5].toString()); // OK, ‘string’ 和 ‘number’ 都有 toString x[6] = true; // Error, 布爾不是(string | number)類(lèi)型 枚舉類(lèi)型(enum) enum類(lèi)型是對JavaScript標準數據類(lèi)型的一個(gè)補充。 像C#等其它語(yǔ)言一樣,使用枚舉類(lèi)型可以為一組數值賦予友好的名字。 enum Color {Red, Green, Blue} let c: Color = Color.Green; //輸出的值是1 默認情況下,從0開(kāi)始為元素編號。 你也可以手動(dòng)的指定成員的數值。 例如,我們將上面的例子改成從1開(kāi)始編號: enum Color {Red = 1, Green, Blue} let c: Color = Color.Green; //輸出值是2 如果前一個(gè)賦值,后面沒(méi)有賦值,那么后面會(huì )根據前面賦值,往后+1?;蛘?,全部都采用手動(dòng)賦值: enum Color {Red = 1, Green = 2, Blue = 4} let c: Color = Color.Green; 任意類(lèi)型(any) 有時(shí)候,我們會(huì )想要為那些在編程階段還不清楚類(lèi)型的變量指定一個(gè)類(lèi)型。 這些值可能來(lái)自于動(dòng)態(tài)的內容,比如來(lái)自用戶(hù)輸入或第三方代碼庫。 這種情況下,我們不希望類(lèi)型檢查器對這些值進(jìn)行檢查而是直接讓它們通過(guò)編譯階段的檢查。 那么我們可以使用any類(lèi)型來(lái)標記這些變量: let notSure: any = 4; notSure = “maybe a string instead”; notSure = false; // okay, definitely a boolean 當你只知道一部分數據的類(lèi)型時(shí),any類(lèi)型也是有用的。 比如,你有一個(gè)數組,它包含了不同的類(lèi)型的數據: let list: any[] = [1, true, “free”]; list[1] = 100; void類(lèi)型 某種程度上來(lái)說(shuō),void類(lèi)型像是與any類(lèi)型相反,它表示沒(méi)有任何類(lèi)型。 當一個(gè)函數沒(méi)有返回值時(shí),你通常會(huì )見(jiàn)到其返回值類(lèi)型是void: function warnUser(): void { alert(“This is my warning message”); } 如果你要返回,根據對應返回的數據,進(jìn)行選擇: function warnUser1(): number { return 123 } 聲明一個(gè)void類(lèi)型的變量沒(méi)有什么大用,因為你只能為它賦予undefined和null: let unusable: void = undefined; null和undefined類(lèi)型 TypeScript里,undefined和null兩者各自有自己的類(lèi)型分別叫做undefined和null。 和void相似,它們本身的類(lèi)型用處不是很大: let u: undefined = undefined; let n: null = null; 默認情況下null和undefined是所有類(lèi)型的子類(lèi)型。 就是說(shuō)你可以把null和undefined賦值給number類(lèi)型的變量。然而,當你指定了–strictNullChecks標記,null和undefined只能賦值給void和它們各自。 這能避免很多常見(jiàn)的問(wèn)題。 也許在某處你想傳入一個(gè)string或null或undefined,你可以使用聯(lián)合類(lèi)型string | null | undefined。 never類(lèi)型 never類(lèi)型表示的是那些永不存在的值的類(lèi)型。 例如,never類(lèi)型是那些總是會(huì )拋出異?;蚋揪筒粫?huì )有返回值的函數表達式或箭頭函數表達式的返回值類(lèi)型; 變量也可能是never類(lèi)型,當它們被永不為真的類(lèi)型保護所約束時(shí)。 never類(lèi)型是任何類(lèi)型的子類(lèi)型,也可以賦值給任何類(lèi)型;然而,沒(méi)有類(lèi)型是never的子類(lèi)型或可以賦值給never類(lèi)型(除了never本身之外)。 即使any也不可以賦值給never。下面是一些返回never類(lèi)型的函數: // 返回never的函數必須存在無(wú)法達到的終點(diǎn) function error(message: string): never { throw new Error(message); } // 推斷的返回值類(lèi)型為never function fail() { return error(“Something failed”); } // 返回never的函數必須存在無(wú)法達到的終點(diǎn) function infiniteLoop(): never { while (true) { } } 來(lái)源鏈接:https://yuntue.com/post/39723.html
更多資訊:更多資訊
本站發(fā)布的【typescript數據類(lèi)型有哪些?TypeScript基本數據類(lèi)型介紹】?jì)热荩▓D片、視頻和文字)以原創(chuàng )、轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng)
如果涉及侵權請盡快告知,我們將會(huì )在第一時(shí)間立刻刪除涉嫌侵權內容,本站原創(chuàng )內容未經(jīng)允許不得轉載,或轉載時(shí)需注明出處。
Copyright ? 2009-2024 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站