學習之路感想
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
以上兩種方式都同樣的效果,就是編譯。