從 Babel 遷移到 Typescript


以下這段 ES7 代碼,透過 babel a.ts -d . --optional runtime 之後,
產出的 a.js ,可以簡單地再透過 node a.js 得到正確的運行結果。


 // a.ts
import fetch from 'node-fetch'

!async function(){
  let HTMLString = await fetch('http://www.google.com.tw').then(response => response.text())
  console.log(HTMLString)
}()

但,當我想使用 typescript 1.5 作同樣的事情時,卻不知如何完成。

因為它會提示: cannot find module 'node-fetch'


 // tsconfig.json
{
  "compileOnSave": false,
  "compilerOptions": {
    "target": "es5",
    "module": "cmd"
  }
}

請問我漏了什麼了嗎?

babel typescript async es6

黎明小黑点 9 years, 4 months ago

Babel 会把代码翻译成 ES5 的 js,但是 TypeScript 不会。

如果你在 TypeScript 中使用了 6 的特性,它会直接翻译成 ES6 的 js。

如果指定了 --target es5,它 TypeScript 就不支持 6 的特性(但支持 TypeScript 的特性,比如类等)

度姐说和谐你们 answered 9 years, 4 months ago

Your Answer