TypeScript入門

2020-09-21 11:00:14

TypeScript入門

1.全域性安裝

  1. npm install -g typescript

2.使用

  1. 將 ts檔案 轉換為 js檔案
    tsc xxx.ts
  2. 將轉換好的 js檔案進行執行
    node xxx.js

由於這樣比較麻煩,我們可以藉助 ts-node 來幫我們編譯執行

  1. 全域性安裝 ts-node
    npm install -g ts-node
  2. 直接執行 ts檔案
    ts-node xxx.ts

這樣相對於直接執行 js檔案會久一些,但是比較方便,不用自己去轉為 js檔案進行執行

3. 靜態型別

所謂的靜態型別,就是一旦定義了什麼型別(比如 string、number),
就不允許你去改變為其他型別。(當然有特殊情況,這個暫不考慮)

一旦定義了什麼型別,會繼承該型別上的原型方法

4. 型別推斷和型別註解

  • 如果 ts 能夠自動分析變數型別(型別推斷),我們就不需要做什麼了
const a = 1;
  • 如果 ts 無法分析變數型別,我們就需要使用型別註解
// (num1: number, num2: number): number  型別註解
function getTotal(num1: number, num2: number): number{
  return num1 + num2;
}
let num3 = getTotal(1, 2);

5. 元組

ts 提供了 元組的概念,這個概念是 js 中沒有的。 一般只在資料來源是 csv 這
種檔案的時候,才會使用元組。個人理解,可以把元組看成陣列的一個加強版,
他可以更好的控制或者說規範裡邊的型別

const jiejie: [string, string, number] = ['xiaofang', 'doctor', 20];

6. 類的存取型別

  1. public
    一般預設的 存取型別
  2. protected
    不允許在外部使用,但是繼承中的類是能使用
  3. private
    只能在當前類使用,不允許去別的地方進行使用,繼承也不行

7. tsconfig.json

  1. 自動生成一個 tsconfig.json檔案
    tsc -init
  2. 記錄一下幾個比較實用的設定項,
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true, // 讓原始檔跟生成的檔案有對應關係,利於以後排錯
    // "noImplicitAny": true, // 為true時,強型別檢查;為 false 時,如果編譯器無法根據變數的使用來判斷型別時,將用 any 型別代替
    "removeComments": true, // 去除註釋
    "strictNullChecks": true, // 不允許有 null值出現
    "strict": true, // 啟動嚴格模式
    "rootDir": "./src", // 入口資料夾
    "outDir": "./bulid", // 編譯出來後,放入的資料夾
    "noUnusedLocals": true, // 若有未使用的區域性變數則拋錯
    "noUnusedParameters": true // 若有未使用的引數則拋錯。
  },
//  "exclude": [ // 除了下面的檔案外。其他都要編譯
//    "node_modules"
//  ],
  "include": [ // 只編譯下面這些檔案
    "./src/00Hello.ts"
  ]
}

  1. 剩下的設定請參考 官方中文設定檔案

第一次寫部落格,主要是記錄一下自己學到的東西。可能寫得不是很好,有錯誤的東西請大家指正,互相學習!!