返回
Featured image of post TypeScript - 前言

TypeScript - 前言

TypeScript - 前言

學習之路感想

JavaScript 和 TypeScript 差在哪裡?

很多人都說多了個強型別,但前端出身的我弱型別和強型別,到底差在哪?我壓根不曉得 …
況且 TypeScript 也是可以完全不定義直接按照 Javascript 的寫法寫,編譯出來直接使用也是無所謂的。
嘗試寫 TypeScript 後,覺得有些方面能力明顯上升 找問題定義資料格式

Go 和 TypeScript 差在哪裡?

Go 可說是現在時下火紅的語言之一,不得不說它的封裝 Build 出的容量極小,這項能力算是我對於 Go 的讚嘆了。
前端出身的我可真是痛苦,以 JS 和 TS 家族來說,就是很明顯的以檔案分割程式碼以及引用,但是 Go 是整個資料夾去定義 package,我只能說 TypeScript 對我的小腦袋真滴友善

真的要說的話,什麼語言都不是問題,邏輯正確,寫法不同僅此而已,咱碼農一枚,找尋適合團隊即可。

環境

安裝

NodeJS 家庭的一枚,VScode的預設支援語言,嚴格上沒什麼套件需要裝載的

# 建立專案
npm init -y && npm i typescript -D

tsconfig.json

定義專案轉譯之資料夾以及轉譯方式。 畢竟 NodeJS 還是以 JS 檔案讀取為主,所以 TS 其實和前端在寫Babel轉譯(.vue)之類的用途一樣

# 指令生成檔案
npx tsc --init

常用設定方式

這是我使用的設定方式

{
    "compilerOptions": {
        "module": "commonjs",
        "moduleResolution": "node",
        "pretty": true,
        "target": "es6",
        "lib": [
            "dom", 
            "es6",
            "dom.iterable",
            "scripthost"
        ],
        "typeRoots": [
            "./typings"
        ],
        "baseUrl": "/src",                  // 入口
        "outDir": "./",                     // 輸出資料夾
        "sourceRoot": "./src",              // 入口
        "inlineSourceMap": true,
        "watch": false,
        "removeComments": true,
        "alwaysStrict": true,
        "emitDecoratorMetadata": true,      // Decorator 使用 (ex: typeorm 需要)
        "experimentalDecorators": true,     // Decorator 使用 (ex: typeorm 需要)
        "esModuleInterop": true,
        "noUnusedLocals": false,
        "noUnusedParameters": false
    },
    "include": ["src/**/*.ts"],
    "exclude": ["node_modules"]
}

編譯專案

// 第一種
vscode 編輯器打開 
鍵盤按鈕 shift + command + B
選擇 `tsc watch - tsconfig.json` 前提: npm i typescript -g

// 第二種
專案內終端機打開
npx tsc --watch

以上兩種方式都同樣的效果,就是編譯。

comments powered by Disqus