直接配置ts的開發環境仍是挺麻煩的,這裏我總結了一套開發模板,能夠在用的時候能夠考慮直接clone這個項目,
項目地址https://github.com/fish-node/...
以這個項目 爲基礎模板來開發就行。node
$ tree . ├── README.md ├── jest.config.js ├── package.json ├── src │ ├── index.ts │ ├── math.ts │ └── server.ts ├── test │ ├── math.test.ts │ └── server.test.ts ├── tsconfig.json └── tslint.json
由於ts是創建在js的基礎之上的,可是node又不能直接運行ts代碼,實際使用是每每須要使用tsc將ts代碼編譯成js代碼,這無疑是很麻煩的。git
而ts-node則包裝了node,它能夠直接的運行ts代碼,使用起來很方便,它的官方倉庫在這裏 https://github.com/TypeStrong... ,基本用法請自行查看它的readme。github
我這裏就是把ts-node寫到package.json,你們在npm install以後,就能夠經過npm
$ npx ts-node src/index.ts
這種方式來運行ts代碼,很方便。json
而後咱們知道node中有個nodemon,能夠在開發時自動的重啓咱們的node程序,而在ts-node中,對應的就是ts-node-dev瀏覽器
$ npx ts-node-dev src/index.ts
在src目錄下,我寫了三個基本的ts代碼bash
而後我使用Jest 做爲測試框架,在test目錄下展現了用Jest + Ts 編寫咱們的測試程序。
運行測試文件的話,可使用服務器
$ npm run test
@types/node @types/jest 是ts中類型聲明文件,它能夠給js編寫的模塊賦予類型系統,讓咱們享受類型系統的好處。框架
而後重點是咱們的ts配置文件。模塊化
通常來講,json文件是不支持註釋的,可是ts官方爲了方便,對這個文件單獨作了增強,使得咱們可使用註釋,註釋語法和js中的同樣。
{ "compilerOptions": { "target": "es2018", "module": "commonjs", "outDir": "./dist/", "rootDir": "./src/", "strict": true, "moduleResolution": "node", "esModuleInterop": true, "experimentalDecorators": true }, "exclude": ["./test"] }
其中的target就是編譯後js代碼的版本,由於咱們是node環境,不必考慮瀏覽器的兼容問題,因此你們仍是儘可能的使用更新的版本吧。
而module選項則是咱們的模塊管理機制,由於咱們的ts-node目前還不指出es的模塊管理機制,參考這個問題https://github.com/TypeStrong... ,因此咱們仍是繼續使用commonjs規範。
而後rootDir就是咱們的源代碼目錄,outDir就是咱們的編譯後代碼的目錄。同時咱們設置了exclude這個選項,把咱們的測試文件排除在外。