基礎:
1、typescript是JavaScript的超集,支持js的所有語法
2、typescript不能運行在瀏覽器,需要使用編譯器編譯后使用
3、全局安裝typescript編譯器
npm install -g typescript
4、編譯typescript文件(01ts.ts)
tsc 01ts.ts
編譯過程中不報錯即成功,同級目錄下會有一個 01ts.js文件
變量類型:
1、ts文件中可以在定義變量時指定該變量的類型,后面在給該變量賦值時只能是定義好的類型,否則會報錯,編譯會報錯,但是默認會編譯成功
2、如果變量的聲明和賦值是同時進行的,那么可以省略對變量類型的定義,ts默認會將初始值的類型定義給該變量
3、定義函數的參數和返回值的類型

4、類型
| 類型 | 例子 | 描述 |
| number | 1,-33,2.5 | 任意數字 |
| string | 'hi',"hi",`hi` | 任意字符串 |
| boolean | true、false | 布爾值 |
| 字面量 | 其本身 | 類似const定義,但是通過 | 可以定義多個字面量 |
| any | * | 任意類型(關閉ts類型檢測,和js一樣了) |
| unknown | * | 類型安全的any(類型為unknown的變量不可以賦值給其他類型的變量,當遇到類型不確定時用unknown,不要用any) |
| void | 空值(undefined) | 沒有值(函數中return后只能是undefined、null,或者return后沒有任何值) |
| never | 沒有值 | 用於不會返回結果。比較少用,一般用來拋出錯誤:
const fn: never = (() => {
throw new Error('錯誤')
})()
|
| object | {name: '小明'} | 任意js對象 |
| array | [1,2,3] | 任意js數組 |
| tuple | [4,5] | 元組,ts新增類型,元素的類型和個數定義時就限定了 |
| enum | enum{A,B} | 枚舉,ts新增類型 |







編譯:
1、 tsc app.ts 編譯app.ts
tsc app.ts -w 實時編譯app.ts
在文件夾根目錄下創建tsconfig.json文件內容為{}時,
tsc 編譯文件夾中所有的ts文件
tsc -w 實時編譯文件夾中所有的ts文件
2、tsconfig.json(創建方式:tsc --init或手動創建)
①includes、exclude、extends、files

②compilerOptions:target、module、lib、outDir、outFile、allowJs、checkJs、removeComments、noEmit、noEmitOnError

③compilerOptions:strict、alwaysStrict、noImplicitAny、noImplicitThis、strictNullChecks

