1.理解TypeScript
TypeScript 是 JavaScript 的類型的超集,支持ES6語(yǔ)法,支持面向?qū)ο缶幊痰母拍?,如類、接口、繼承、泛型等,具體的關(guān)系,看圖
其是一種靜態(tài)類型檢查的語(yǔ)言,提供了類型注解,在代碼編譯階段就可以檢查出數(shù)據(jù)類型的錯(cuò)誤
同時(shí)擴(kuò)展了 JavaScript 的語(yǔ)法,所以任何現(xiàn)有的 JavaScript 程序可以不加改變的在 TypeScript 下工作
為了保證兼容性,TypeScript 在編譯階段需要編譯器編譯成純 JavaScript 來(lái)運(yùn)行,是為大型應(yīng)用之開(kāi)發(fā)而設(shè)計(jì)的語(yǔ)言,如下:
ts文件:
const hello: string = "Hello World!";
console.log(hello);
編譯后:
const hello = "Hello World!";
console.log(hello);
2.TypeScript的特性
類型批注和編譯時(shí)類型檢查 :在編譯時(shí)批注變量類型
類型推斷:ts 中沒(méi)有批注變量類型會(huì)自動(dòng)推斷變量的類型
接口:ts 中用接口來(lái)定義對(duì)象類型
枚舉:用于取值被限定在一定范圍內(nèi)的場(chǎng)景
泛型:寫(xiě)代碼時(shí)使用一些以后才指定的類型
名字空間:名字只在該區(qū)域內(nèi)有效,其他區(qū)域可重復(fù)使用該名字而不沖突
元組:元組合并了不同類型的對(duì)象,相當(dāng)于一個(gè)可以裝不同類型數(shù)據(jù)的數(shù)組
等等······
類型批注
通過(guò)類型批注提供在編譯時(shí)啟動(dòng)類型檢查的靜態(tài)類型,對(duì)于基本類型的批注是 number、bool 和 string,而弱或動(dòng)態(tài)類型的結(jié)構(gòu)則是 any 類型
類型推斷
當(dāng)類型沒(méi)有給出時(shí),TypeScript 編譯器利用類型推斷來(lái)推斷類型,如下:
let str = "string";
變量 str 被推斷為字符串類型,這種推斷發(fā)生在初始化變量和成員,設(shè)置默認(rèn)參數(shù)值和決定函數(shù)返回值時(shí)
如果缺乏聲明而不能推斷出類型,那么它的類型被視作默認(rèn)的動(dòng)態(tài) any 類型
3.和JavaScript 區(qū)別
TypeScript 是 JavaScript 的超集,擴(kuò)展了 JavaScript 的語(yǔ)法
TypeScript 可處理已有的 JavaScript 代碼,并只對(duì)其中的 TypeScript 代碼進(jìn)行編譯
TypeScript 文件的后綴名 .ts ,JavaScript 文件是 .js
在編寫(xiě) TypeScript 的文件的時(shí)候就會(huì)自動(dòng)編譯成 js 文件