typescript的基本類型

1,布爾值typescript

 let isTrue:boolean=false; 編程

2,數字(在typescript裏全部數字都是浮點型,除了支持十進制和十六進制字面量,TypeScript還支持ECMAScript 2015中引入的二進制和八進制字面量)數組

let num1:number=6;
let num2:0xd000;

3,字符串函數

let name:string="baobao";

name="baobao2";

4,數組oop

let list:number[]=[1,2,3];


第二種方式是使用數組泛型,Array<元素類型>
let list2:Array<number>=[1,2,3]

5,元組(Tuple)this

元組類型容許表示一個已知元素數量和類型的數組,各元素的類型沒必要相同。 好比,你能夠定義一對值分別爲 stringnumber類型的元組。spa

1 let test:[string,number];
2 
3 test=['hello',10];//ok
4 test=[10,'hello']//error

6枚舉(enum)code

默認狀況下,從0開始爲元素編號。 你也能夠手動的指定成員的數值。 例如,咱們將上面的例子改爲從 1開始編號:blog

 

enum color={red=1,green,blue}
let C:color=color.green

枚舉類型提供的一個便利是你能夠由枚舉的值獲得它的名字。 例如,咱們知道數值爲2,可是不肯定它映射到Color裏的哪一個名字,咱們能夠查找相應的名字:ip

enum color{red,green,blue};
let colorName:string=color[2];
console.log(colorName)//顯示‘green’由於上邊代碼他的值爲2

7,Any

①有時候,咱們會想要爲那些在編程階段還不清楚類型的變量指定一個類型。 這些值可能來自於動態的內容,好比來自用戶輸入或第三方代碼庫。 這種狀況下,咱們不但願類型檢查器對這些值進行檢查而是直接讓它們經過編譯階段的檢查。 那麼咱們可使用 any類型來標記這些變量:

②在對現有代碼進行改寫的時候,any類型是十分有用的,它容許你在編譯時可選擇地包含或移除類型檢查。 你可能認爲 Object有類似的做用,就像它在其它語言中那樣。 可是 Object類型的變量只是容許你給它賦任意值 - 可是卻不可以在它上面調用任意的方法,即使它真的有這些方法:

③當你只知道一部分數據的類型時,any類型也是有用的。 好比,你有一個數組,它包含了不一樣的類型的數據

let list:Any[]=[1,true,"one"];

list[1]=10;

8,void

在必定程度上void和any的類型像是相反的,他表示沒有任何類型,當一個函數沒有返回值時,你一般會見到其返回值類型是void;

function test(str):void{

console.log("this is my book")    
}

聲明一個void類型變量沒什麼大用,由於你只能爲他賦予undefined和null

let unde:void=undefined;

9,null和undefined

①TypeScript裏,undefinednull二者各自有本身的類型分別叫作undefinednull。 和 void類似,它們的自己的類型用處不是很大:

②默認狀況下nullundefined是全部類型的子類型。 就是說你能夠把 nullundefined賦值給number類型的變量。

10,never

never類型表示的是那些永不存在的值的類型。 例如, never類型是那些老是會拋出異常或根本就不會有返回值的函數表達式或箭頭函數表達式的返回值類型; 變量也多是 never類型,當它們被永不爲真的類型保護所約束時。

never類型是任何類型的子類型,也能夠賦值給任何類型;然而,沒有類型是never的子類型或能夠賦值給never類型(除了never自己以外)。 即便 any也不能夠賦值給never

// 返回never的函數必須存在沒法達到的終點
function error(message: string): never {
    throw new Error(message);
}

// 推斷的返回值類型爲never
function fail() {
    return error("Something failed");
}

// 返回never的函數必須存在沒法達到的終點
function infiniteLoop(): never {
    while (true) {
    }
}

(算了。。。這個真看不懂以後再研究吧)

11,object

object表示非原始類型,也就是除numberstringbooleansymbolnullundefined以外的類型。

使用object類型,就能夠更好的表示像Object.create這樣的API。

12.類型斷言

有時候你會遇到這樣的狀況,你會比TypeScript更瞭解某個值的詳細信息。 一般這會發生在你清楚地知道一個實體具備比它現有類型更確切的類型。

類型斷言有兩種形式

①「尖括號」

let str:any="this is a number";
let strlength:number=(<string>str).length

②as語法

let str:any=「this is a number」;


let strlength:number=(str as string).length
相關文章
相關標籤/搜索