黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

TypeScript 數(shù)據(jù)類型

TypeScript 數(shù)據(jù)類型

TypeScript 包含的數(shù)據(jù)類型如下表:

數(shù)據(jù)類型 關(guān)鍵字 描述
任意類型 any 聲明為 any 的變量可以賦予任意類型的值。
數(shù)字類型 number

雙精度 64 位浮點(diǎn)值。它可以用來(lái)表示整數(shù)和分?jǐn)?shù)。

let binaryLiteral: number = 0b1010; // 二進(jìn)制
let octalLiteral: number = 0o744;    // 八進(jìn)制
let decLiteral: number = 6;    // 十進(jìn)制
let hexLiteral: number = 0xf00d;    // 十六進(jìn)制
字符串類型 string

一個(gè)字符系列,使用單引號(hào)(')或雙引號(hào)(")來(lái)表示字符串類型。反引號(hào)(`)來(lái)定義多行文本和內(nèi)嵌表達(dá)式。

let name: string = "Codebaoku";
let years: number = 5;
let words: string = `您好,今年是 ${ name } 發(fā)布 ${ years + 1} 周年`;
布爾類型 boolean

表示邏輯值:true 和 false。

let flag: boolean = true;
數(shù)組類型 無(wú)

聲明變量為數(shù)組。

// 在元素類型后面加上[]
let arr: number[] = [1, 2];

// 或者使用數(shù)組泛型
let arr: Array<number> = [1, 2];</number>
元組 無(wú)

元組類型用來(lái)表示已知元素?cái)?shù)量和類型的數(shù)組,各元素的類型不必相同,對(duì)應(yīng)位置的類型需要相同。

let x: [string, number];
x = ['Codebaoku', 1];    // 運(yùn)行正常
x = [1, 'Codebaoku'];    // 報(bào)錯(cuò)
console.log(x[0]);    // 輸出 Runoob
枚舉 enum

枚舉類型用于定義數(shù)值集合。

enum Color {Red, Green, Blue};
let c: Color = Color.Blue;
console.log(c);    // 輸出 2
void void

用于標(biāo)識(shí)方法返回值的類型,表示該方法沒(méi)有返回值。

function hello(): void {
    alert("Hello Codebaoku");
}
null null

表示對(duì)象值缺失。

undefined undefined

用于初始化變量為一個(gè)未定義的值

never never

never 是其它類型(包括 null 和 undefined)的子類型,代表從不會(huì)出現(xiàn)的值。

注意:TypeScript 和 JavaScript 沒(méi)有整數(shù)類型。

 

1. Any 類型

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

1、變量的值會(huì)動(dòng)態(tài)改變時(shí),比如來(lái)自用戶的輸入,任意值類型可以讓這些變量跳過(guò)編譯階段的類型檢查,示例代碼如下:

let x: any = 1;    // 數(shù)字類型
x = 'I am who I am';    // 字符串類型
x = false;    // 布爾類型

改寫(xiě)現(xiàn)有代碼時(shí),任意值允許在編譯時(shí)可選擇地包含或移除類型檢查,示例代碼如下:

let x: any = 4;
x.ifItExists();    // 正確,ifItExists方法在運(yùn)行時(shí)可能存在,但這里并不會(huì)檢查
x.toFixed();    // 正確

定義存儲(chǔ)各種類型數(shù)據(jù)的數(shù)組時(shí),示例代碼如下:

let arrayList: any[] = [1, false, 'fine'];
arrayList[1] = 100;

 

2. Null 和 Undefined

1) null

在 JavaScript 中 null 表示 "什么都沒(méi)有"。

null是一個(gè)只有一個(gè)值的特殊類型。表示一個(gè)空對(duì)象引用。

用 typeof 檢測(cè) null 返回是 object。

2) undefined

在 JavaScript 中, undefined 是一個(gè)沒(méi)有設(shè)置值的變量。

typeof 一個(gè)沒(méi)有值的變量會(huì)返回 undefined。

Null 和 Undefined 是其他任何類型(包括 void)的子類型,可以賦值給其它類型,如數(shù)字類型,此時(shí),賦值后的類型會(huì)變成 null 或 undefined。而在TypeScript中啟用嚴(yán)格的空校驗(yàn)(--strictNullChecks)特性,就可以使得null 和 undefined 只能被賦值給 void 或本身對(duì)應(yīng)的類型,示例代碼如下:

// 啟用 --strictNullChecks
let x: number;
x = 1; // 運(yùn)行正確
x = undefined;    // 運(yùn)行錯(cuò)誤
x = null;    // 運(yùn)行錯(cuò)誤

上面的例子中變量 x 只能是數(shù)字類型。如果一個(gè)類型可能出現(xiàn) null 或 undefined, 可以用 | 來(lái)支持多種類型,示例代碼如下:

// 啟用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 運(yùn)行正確
x = undefined;    // 運(yùn)行正確
x = null;    // 運(yùn)行正確

 

3. never 類型

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

let x: never;
let y: number;

// 運(yùn)行錯(cuò)誤,數(shù)字類型不能轉(zhuǎn)為 never 類型
x = 123;

// 運(yùn)行正確,never 類型可以賦值給 never類型
x = (()=>{ throw new Error('exception')})();

// 運(yùn)行正確,never 類型可以賦值給 數(shù)字類型
y = (()=>{ throw new Error('exception')})();

// 返回值為 never 的函數(shù)可以是拋出異常的情況
function error(message: string): never {
    throw new Error(message);
}

// 返回值為 never 的函數(shù)可以是無(wú)法被執(zhí)行到的終止點(diǎn)的情況
function loop(): never {
    while (true) {}
}

下一節(jié):TypeScript 變量聲明

TypeScript 教程

相關(guān)文章