TypeScript學習筆記—安裝與基礎類型

angular等大型框架的基礎語言爲typescript,學習了一陣angular後,又回來從新學習typescript,有了一些體會,在這裏和你們進行一下分享。javascript

安裝TypeScript和編譯

安裝TypeScript很是簡單,在計算機安裝了node.js的狀況下,經過npm就能夠安裝:java

npm install -g typescript

TypeScript是以ts爲擴展名的文件,不能直接使用,要編譯爲javascript文件,才能使用。例如咱們有一個greeter.ts文件,編譯命令是:node

tsc greeter.ts

輸出結果爲一個greeter.js文件。這樣咱們就可使用了。typescript

TypeScript的基礎類型

爲了讓程序有價值,咱們須要可以處理最簡單的數據單元:數字,字符串,結構體,布爾值等。 TypeScript支持與JavaScript幾乎相同的數據類型,此外還提供了實用的枚舉類型方便咱們使用。這裏經過代碼列舉一下typescript的基礎類型,注意看在冒號和等號之間的代碼,它定義了變量的類型,在函數中就表明參數或返回值的類型。
布爾值let isDone: boolean = false;
數字:全部數字類型都是浮點型:let decLiteral: number = 6;
字符串let name: string = "bob";
數組有兩種定義方法:
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
元祖:這是一個新的概念。
定義元祖:let x: [string, number];
給元祖賦值:x = ['hello', 10];
若是元祖值越界,會採用聯合類型替代x[3] = 'world';
訪問元祖裏的數據:console.log(x[0] + ' ' + x[1] + ' ' + x[3] + x[5]);
訪問的結果是:hello 10 world undefined
這裏有個有趣的現象,x[5]越界了並且沒有定義,結果爲undefined。
枚舉:enum類型是對JavaScript標準數據類型的一個補充。使用枚舉類型能夠爲一組數值賦予友好的名字。
定義枚舉:enum Color {Red, Green, Blue}
將枚舉屬性賦值給變量:
let c: Color = Color.Green;
let colorName: string = Color[2];
c的值變爲Green。
默認狀況下,從0開始爲元素編號。 你也能夠手動的指定成員的數值:npm

enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green;

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

let notSure: any = 4;
let list3: any[] = [1, true, "free"];
list[2] = 100;

list的內容變爲:[1, true, 100]
any類型和Object類型的區別:Object類型的變量只是容許你給它賦任意值 - 可是卻不可以在它上面調用任意的方法,any類型能夠調用任意方法。
void:這個類型和其餘有void類型的語言含義相同,表示不返回任何值。這個類型主要用在函數的返回值上,聲明一個void類型的變量沒有什麼大用,由於你只能爲它賦予undefined和null。
null 和 undefined:這兩個類型用處也不是很大,也許在某處你想傳入一個 string或null或undefined,你可使用聯合類型string | null | undefined(聯合類型後面再說)。
never:never類型表示的是那些永不存在的值的類型。數組

// 返回never的函數必須存在沒法達到的終點
function error(message: string): never {
    throw new Error(message);
}
// 推斷的返回值類型爲never
function fail() {
    return error("Something failed");
}
// 返回never的函數必須存在沒法達到的終點
function infiniteLoop(): never {
    while (true) {
    }
}

類型斷言:有時候你會比TypeScript更瞭解某個值的詳細信息。經過類型斷言這種方式能夠告訴編譯器你要聲明的類型。
類型斷言的兩種寫法:框架

  • 尖括號語法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
  • as語法
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

TypeScript的基本類型就是這些了,在這裏給你們羅列出來,做爲參考。函數

相關文章
相關標籤/搜索