typescript是微軟開發的,是JavaScript的超集,遵循es6規範
2016年發佈的angular 2框架 是由typescript編寫的,這門語言是由微軟和谷歌在背後支持
typescript的優點
支持es6規範
強大的IDE檢查 (類型檢查,語法提示,重構)
angular 2框架的語言(能更好的學習angular 2)
vscode 自動編譯ts文件
tsc -init 初始化 建立typescript.json
第二步:打開tsconfig.json文件修改和刪除相應配置(若是想快速修改配置,請複製下列配置)
」target」 : 編譯爲什麼種規範,通常設置爲 ES5 或者 ES2016/2017
「outdir」 : 輸出目錄
「alwaysStrict」 : 打開嚴格模式 (‘use strict’)
{
"compilerOptions": {
"target": "es5",
"noImplicitAny": false,
"module": "amd",
"removeComments": false,
"sourceMap": false,
"outDir": "js"//你要生成js的目錄
}
}java
第三步:打開VSCode進入該目錄,按下 Ctrl+shift+B 快捷鍵會進行編譯,初次編譯會選擇編譯模式(自行編寫.ts文件測試)
注意:
監視模式 是每當TS文件有變更就會自動編譯,構建模式是手動命令編譯時纔會去編譯,這裏選擇監視模式es6
訪問修飾符
跟java相似,TypeScript的訪問修飾符有三個,分別是public、private、protected 。
TypeScript的默認訪問修飾符是public。
1)public 聲明的屬性和方法在類的內部和外部均能訪問到。
2)protected 聲明的方法和屬性只能在類的內部和其子類能訪問。
3)private 聲明的方法和屬性只能在其類的內部訪問。typescript
readonly修飾符
使用readonly關鍵字會將屬性設置爲只讀的。 只讀屬性必須在聲明時或構造函數裏被初始化。且值不能不能被修改,和const相似。
最簡單判斷該用readonly仍是const的方法是看要把它作爲變量使用仍是作爲一個屬性。 作爲變量使用的話用 const,若作爲屬性則使用readonly。json
存取器(Getter And Setter)
TypeScript中的存取器就相似與java中set和get方法,只不過調用的方式不同。好比在一個類中咱們將其中一個屬性用private修飾,那麼,在類的外部就沒法訪問到該屬性,這個時候咱們能夠經過getters/setters來封裝一下,以便在類的外部去訪問該屬性。須要注意的是,只帶有 get不帶有set的存取器自動被推斷爲readonly。也就是說,若是隻寫get但沒有set的話,咱們是不能更改值的。框架
注意事項
(1)在引用.tsx文件的時候,不須要後綴名。而引用.jsx文件的時候,要加上後綴名。
(2)在.tsx中導入React須要使用import * as React from ...,不能使用import React from ...,
爲tsconfig.json > compilerOptions增長allowSyntheticDefaultImports選項爲true能夠解決這個問題,
可是vs code仍是會標紅(重啓vs code可解決)。
(3).jsx能識別.jsx和.tsx的默認導出,
.tsx能識別.tsx的默認導出,可是不能識別.jsx的默認導出
(4) 爲了能讓TypeScript識別導入JavaScript模塊中變量的類型,還要爲模塊添加.d.ts文件。函數