從 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"
  }
}

請問我漏了什麼了嗎?

阅读 7.7k
2 个回答

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

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

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

npm install typescript@next

然后tsconfig中,target设置es6,module设置commonjs

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进