TypeScript是由C#語言之父Anders Hejlsberg主導開發的一門編程語言,TypeScript本質上是向JavaScript語言添加了可選的靜態類型和基於類的面向對象編程,它至關因而JavaScript的超集git
ES五、ES6和TypeScript的關係:typescript
首先須要安裝npm,而後在輸入npm
npm install -g typescript
安裝完成後,由於TypeScript是以.ts結尾的,要想運行就得把他編譯js文件,編譯的方法特別簡單就是使用tsc命令編程
tsc hello.ts
一般在項目中ts文件比較多的狀況下,咱們須要本身配置tsconfig.json文件,以便能更好的編譯ts文件,配置tsconfig.json文件不難,這裏就不贅述,能夠自行百度json
在TypeScript中有如下基本數據類型數組
• 布爾類型(boolean)編程語言
• 數字類型(number)函數
• 字符串類型(string)spa
• 數組類型(array)code
• 元組類型(tuple)
• 枚舉類型(enum)
• 任意值類型(any)
• null和undefined
• void類型
• never類型
布爾類型是最簡單的數據類型,只有true和false兩種值
注意:布爾類型是不能賦予其餘值的
let flag: boolean = true; flag = 1; //報錯
和JavaScript同樣,TypeScript數字都是浮點型,也支持二進制、八進制、十進制和十六進制
let decLiteral: number = 6; let hexLiteral: number = 0xf00d; let binaryLiteral: number = 0b1010; let octalLiteral: number = 0o744;
能夠用單引號(')和雙引號(")來表示字符串類型,除此以外還支持使用模板字符串反引號(`)來定義多行文本和內嵌表達式。使用${ expr }的形式嵌入變量或表達式
let name: string = 'Angular'; let years: string = 7; let words: string = `今年是 ${ name } 發佈 ${ years } 週年`;
TypeScript數組的操做相似於JavaScript中數組的操做,TypeScript建議開發者最好只爲數組元素賦一種類型的值,定義數組有兩種方式
一、在元素類型後面加上[]
let arr: number[] = [2,3];
二、使用數組泛型
let arr: Array<number> = [2,3];
元組類型用來表示已知數量和類型的數組,各元素的類型沒必要相同
let x: [string,number]; x = ['Angular',5]; //正確 x = [5,'Angular']; //報錯
枚舉是一個可被命名的整型常數的集合,枚舉類型爲集合成員賦予有意義的名稱加強可讀性
enum Color {red,green,blue}; let c: Color = Color.blue; console.log(c); //2
枚舉默認下標是0,也能夠手動修改
enum Color {red = 2,green = 3,blue = 6}; let c: Color = Color.blue; console.log(c); //6
任意值是TypeScript針對編程時類型不明確的變量使用的一種數據類型,經常使用於如下三種類型
一、值可能來自於動態的內容,好比來自用戶輸入或第三方代碼庫。 這種狀況下,咱們不但願類型檢查器對這些值進行檢查而是直接讓它們經過編譯階段的檢查。
let x: any = 1; x = 'I am a string'; x = false;
二、容許你在編譯時可選擇地包含或移除類型檢查
let x: any = 4; x.toFixed(); //正確,並不檢查是否存在
三、定義儲存各類類型數據的數組時
let arrarList: any[] = [1,'qwe',true];
默認狀況下null和undefined是全部類型的子類型。 就是說你能夠把null和undefined賦值給number類型的變量。
然而,若是啓用--strictNullChecks,就可使得null和undefined只能被賦值給void或自己對應的類型
let x: number; x = 1; x = null; //正確 啓用 --strictNullChecks let y: number; y = 1; y = null; //錯誤
使用void表示沒有任何類型,例如一個函數沒有返回值,意味着返回void
function hello(): void{ alert('hello Angular'); }
never是其餘類型(包括null和undefined)的子類型,表明從不會出現的值,這意味着聲明爲never類型的變量只能被never類型所賦值,在函數中一般表示爲拋出異常或沒法執行到終止點
let x: never; let y: number; //報錯 x = 123; //正確 y = x;
參考資料:
揭祕Angular2第3章