您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Typescript中數(shù)據(jù)類(lèi)型的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
typescript和javascript幾乎一樣,擁有相同的數(shù)據(jù)類(lèi)型,另外在javascript基礎(chǔ)上提供了更加實(shí)用的類(lèi)型供開(kāi)發(fā)使用。
在開(kāi)發(fā)階段,可以為明確的變量定義為某種類(lèi)型,這樣typescript就能在編譯階段進(jìn)行類(lèi)型檢查,當(dāng)類(lèi)型不符合預(yù)期結(jié)果的時(shí)候則會(huì)出現(xiàn)錯(cuò)誤提示
typescript的數(shù)據(jù)類(lèi)型主要有如下:
1、boolean(布爾類(lèi)型)
2、number(數(shù)字類(lèi)型)
3、string(字符串類(lèi)型)
4、array(數(shù)組類(lèi)型)
5、tuple(元組類(lèi)型)
6、enum(枚舉類(lèi)型)
7、any(任意類(lèi)型)
8、null和undefined類(lèi)型
9、void類(lèi)型
10、never類(lèi)型
11、object(對(duì)象類(lèi)型)
let flag:boolean = true; flag = 123; // 錯(cuò)誤 flag = false; // 正確
數(shù)字類(lèi)型,和javascript一樣,typescript的數(shù)值類(lèi)型都是浮點(diǎn)數(shù),可支持二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。
let num:number = 123; num = '456'; // 錯(cuò)誤 num = 456; // 正確
進(jìn)制表示:
let decLiteral:number = 6; // 十進(jìn)制 let hexLiteral:number = 0xfood; // 十六進(jìn)制 let binaryLiteral:number = 0b1010; // 二進(jìn)制 let octalLiteral:number = 0o744; // 八進(jìn)制
字符串類(lèi)型,和javascript一樣,可以使用雙引號(hào)(")或單引號(hào)(')表示字符串
let str:string = 'this is ts'; str = 'test';
作為超集,當(dāng)然也可以使用模板字符串進(jìn)行包裹,通過(guò)${}嵌入變量
let name:string = `Gene`; let sentence:string = `Hello, my name is ${name}`
數(shù)組類(lèi)型,跟javascript一致,通過(guò)[]進(jìn)行包裹,有兩種寫(xiě)法:
方式一:元素類(lèi)型后面接上[]
let arr:string[] = ['12','23']; arr = ['45','56'];
方式二:使用數(shù)組泛型,Array<元素類(lèi)型>:
let arr:Array<number> = [1,2]; arr = ['45','55'];
元組類(lèi)型,允許表示一個(gè)已知元素和類(lèi)型的數(shù)組,各元素的類(lèi)型不必相同
let tupleArr:[number,string,boolean]; tupleArr = [12,'34',true]; // yes tupleArr = [12,'34']; // no
enum類(lèi)型是對(duì)javascript標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型的一個(gè)補(bǔ)充,使用枚舉類(lèi)型可以為一組數(shù)值賦予友好的名字
enum Color {Red,Green,Blue} let c:Color = Color.Green;
可以指定任何類(lèi)型的值,在編程階段還不清楚類(lèi)型的變量指定一個(gè)類(lèi)型,不希望類(lèi)型檢查器對(duì)這些值進(jìn)行檢查而是直接讓它們通過(guò)編譯階段的檢查,這時(shí)候可以使用any類(lèi)型
使用any類(lèi)型允許被賦值為任意類(lèi)型,甚至可以調(diào)用其屬性、方法
let num:any = 123; num = 'str'; num = true;
定義存儲(chǔ)各種類(lèi)型數(shù)據(jù)的數(shù)組時(shí),示例代碼如下:
let arrayList:any[] = [1,false,'fine']; arrayList[1] = 100;
在javascript中null表示 “什么都沒(méi)有”,是一個(gè)只有一個(gè)值的特殊類(lèi)型,表示一個(gè)空對(duì)象引用,而undefined表示一個(gè)沒(méi)有設(shè)置值的變量。
默認(rèn)情況下null和undefined是所有類(lèi)型的子類(lèi)型,就是說(shuō)你可以把null和undefined賦值給number類(lèi)型的變量
let num:number | undefined; // 數(shù)值類(lèi)型或者undefined console.log(num); // 正確 num = 123; console.log(num); // 正確
但是ts配置了--strictNullChecks標(biāo)記,null和undefined只能賦值給void和它們各自
用于標(biāo)識(shí)方法返回值的類(lèi)型,表示該方法沒(méi)有返回值。
function hello():void { alert('Hello Runoob') }
never是其他類(lèi)型(包括null和undefined)的子類(lèi)型,可以賦值給任何類(lèi)型,代表從不會(huì)出現(xiàn)的值,
但是沒(méi)有類(lèi)型是never的子類(lèi)型,這意味著生命never的變量只能被never類(lèi)型所賦值。
never類(lèi)型一般用來(lái)指定哪些總是會(huì)拋出異常,無(wú)限循環(huán)
let a:never; a = 123; // 錯(cuò)誤的寫(xiě)法 a = (() => { // 正確的寫(xiě)法 throw new Errow('錯(cuò)誤') })() // 返回的never的函數(shù)必須存在無(wú)法達(dá)到的終點(diǎn) function error(message:string): never { thorw new Error(message); }
對(duì)象類(lèi)型,非原始類(lèi)型,常見(jiàn)的形式通過(guò){}進(jìn)行包裹
let obj:object; obj = {name:'Zhang',age:23};
關(guān)于“Typescript中數(shù)據(jù)類(lèi)型的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。