以下這段 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 会把代码翻译成 ES5 的 js,但是 TypeScript 不会。
如果你在 TypeScript 中使用了 6 的特性,它会直接翻译成 ES6 的 js。
如果指定了 --target es5,它 TypeScript 就不支持 6 的特性(但支持 TypeScript 的特性,比如类等)