Typescript中的數(shù)據(jù)類型實(shí)例總結(jié)
是什么
typescript和javascript幾乎一樣,擁有相同的數(shù)據(jù)類型,另外在javascript基礎(chǔ)上提供了更加實(shí)用的類型供開發(fā)使用。
在開發(fā)階段,可以為明確的變量定義為某種類型,這樣typescript就能在編譯階段進(jìn)行類型檢查,當(dāng)類型不符合預(yù)期結(jié)果的時(shí)候則會(huì)出現(xiàn)錯(cuò)誤提示
有哪些
typescript的數(shù)據(jù)類型主要有如下:
- 1、boolean(布爾類型)
- 2、number(數(shù)字類型)
- 3、string(字符串類型)
- 4、array(數(shù)組類型)
- 5、tuple(元組類型)
- 6、enum(枚舉類型)
- 7、any(任意類型)
- 8、null和undefined類型
- 9、void類型
- 10、never類型
- 11、object(對(duì)象類型)
boolean
let flag:boolean = true; flag = 123; // 錯(cuò)誤 flag = false; // 正確
number
數(shù)字類型,和javascript一樣,typescript的數(shù)值類型都是浮點(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)制
string
字符串類型,和javascript一樣,可以使用雙引號(hào)(")或單引號(hào)(')表示字符串
let str:string = 'this is ts'; str = 'test';
作為超集,當(dāng)然也可以使用模板字符串進(jìn)行包裹,通過${}嵌入變量
let name:string = `Gene`; let sentence:string = `Hello, my name is ${name}`
array
數(shù)組類型,跟javascript一致,通過[]進(jìn)行包裹,有兩種寫法:
方式一:元素類型后面接上[]
let arr:string[] = ['12','23']; arr = ['45','56'];
方式二:使用數(shù)組泛型,Array<元素類型>:
let arr:Array<number> = [1,2]; arr = ['45','55'];
tuple
元組類型,允許表示一個(gè)已知元素和類型的數(shù)組,各元素的類型不必相同
let tupleArr:[number,string,boolean]; tupleArr = [12,'34',true]; // yes tupleArr = [12,'34']; // no
enum
enum類型是對(duì)javascript標(biāo)準(zhǔn)數(shù)據(jù)類型的一個(gè)補(bǔ)充,使用枚舉類型可以為一組數(shù)值賦予友好的名字
enum Color {Red,Green,Blue} let c:Color = Color.Green;
any
可以指定任何類型的值,在編程階段還不清楚類型的變量指定一個(gè)類型,不希望類型檢查器對(duì)這些值進(jìn)行檢查而是直接讓它們通過編譯階段的檢查,這時(shí)候可以使用any類型
使用any類型允許被賦值為任意類型,甚至可以調(diào)用其屬性、方法
let num:any = 123; num = 'str'; num = true;
定義存儲(chǔ)各種類型數(shù)據(jù)的數(shù)組時(shí),示例代碼如下:
let arrayList:any[] = [1,false,'fine']; arrayList[1] = 100;
null和undefined
在javascript中null表示 “什么都沒有”,是一個(gè)只有一個(gè)值的特殊類型,表示一個(gè)空對(duì)象引用,而undefined表示一個(gè)沒有設(shè)置值的變量。
默認(rèn)情況下null和undefined是所有類型的子類型,就是說你可以把null和undefined賦值給number類型的變量
let num:number | undefined; // 數(shù)值類型或者undefined console.log(num); // 正確 num = 123; console.log(num); // 正確
但是ts配置了--strictNullChecks標(biāo)記,null和undefined只能賦值給void和它們各自
void
用于標(biāo)識(shí)方法返回值的類型,表示該方法沒有返回值。
function hello():void { alert('Hello Runoob') }
never
never是其他類型(包括null和undefined)的子類型,可以賦值給任何類型,代表從不會(huì)出現(xiàn)的值,
但是沒有類型是never的子類型,這意味著生命never的變量只能被never類型所賦值。
never類型一般用來指定哪些總是會(huì)拋出異常,無限循環(huán)
let a:never; a = 123; // 錯(cuò)誤的寫法 a = (() => { // 正確的寫法 throw new Errow('錯(cuò)誤') })() // 返回的never的函數(shù)必須存在無法達(dá)到的終點(diǎn) function error(message:string): never { thorw new Error(message); }
object
對(duì)象類型,非原始類型,常見的形式通過{}進(jìn)行包裹
let obj:object; obj = {name:'Zhang',age:23};
總結(jié)
和javascript基本一致,也分成:
- 1、基本類型
- 2、引用類型
在基礎(chǔ)類型上,typescript增添了void、any、emun等原始類型。
到此這篇關(guān)于Typescript數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)Typescript數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js 時(shí)間格式與時(shí)間戳的相互轉(zhuǎn)換示例代碼
很多的新手朋友們對(duì)js中的時(shí)間格式與時(shí)間戳的轉(zhuǎn)換比較陌生,下面就為大家詳細(xì)介紹下具體的轉(zhuǎn)換步驟,感興趣的朋友可以參考下2013-12-12js對(duì)table的td進(jìn)行相同內(nèi)容合并示例詳解
正如標(biāo)題所言如何對(duì)table的td進(jìn)行相同內(nèi)容合并,下面為大家詳細(xì)介紹下使用js是如何做到的,感興趣的朋友不要錯(cuò)過2013-12-12javascript框架設(shè)計(jì)讀書筆記之字符串的擴(kuò)展和修復(fù)
本文是司徒正美的《javascript框架設(shè)計(jì)》的第三章第一節(jié)的讀書筆記,簡單介紹了javascript字符串的擴(kuò)展和修復(fù),小伙伴們參考下吧2014-12-12javascript 兼容FF的onmouseenter和onmouseleave的代碼
經(jīng)過測試發(fā)現(xiàn),例子1 在 ff下抖動(dòng)的厲害,ie下稍微有點(diǎn)。 具體原因 其實(shí)就是 mouseout 的冒泡機(jī)制 引起的。2008-07-07原生js實(shí)現(xiàn)拖拽移動(dòng)與縮放效果
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)拖拽移動(dòng)與縮放效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08js/jquery控制頁面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
下面小編就為大家?guī)硪黄猨s/jquery控制頁面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02