我用的打字稿及的WebPack也用巴貝爾玩完編譯註意到一些網絡項目的一些項目。例如,他們使用ts編譯爲ES2015,然後使用babel編譯爲es5。爲什麼不直接使用ts直接編譯成es5?爲什麼使用打字稿/的WebPack也用巴貝爾完成編譯
是在項目中也有JS需要進行編譯,以便他們只是用巴貝爾一切的情況下?或者我錯過了什麼?
謝謝。
我用的打字稿及的WebPack也用巴貝爾玩完編譯註意到一些網絡項目的一些項目。例如,他們使用ts編譯爲ES2015,然後使用babel編譯爲es5。爲什麼不直接使用ts直接編譯成es5?爲什麼使用打字稿/的WebPack也用巴貝爾完成編譯
是在項目中也有JS需要進行編譯,以便他們只是用巴貝爾一切的情況下?或者我錯過了什麼?
謝謝。
有這幾個可能的原因。
Promise
,Symbol
等)。這可以讓你決定這些polyfill的哪個實現對你來說最適合,但這可能是一個痛苦。巴別爾免除你考慮這個問題的負擔。這是一個折衷。async
/await
)創建 - 自2.1打字稿一直支持ES5 async
/await
,並支持發電機從2.3開始在downlevelIteration
之後。在此之前,用戶通常依靠巴別塔來彌補鬆懈,但巴別爾在這裏不再需要。allowSyntheticDefaultImport
選項,它告訴TypeScript默認導入可用於導入某些模塊。 Babel支持這種行爲,但Webpack直到Webpack 2推出之前都沒有。新版本的Webpack不再需要Babel了。這可能不是完整的原因,但這是我能想到的一些原因。
爲什麼不直接使用TS直接編譯到ES5?
這是我做的。
有在使用起來都沒有缺陷。既然都這樣做:
(non js OR js) => standard js
您可以通過做
(non js OR js) => standard js => es5
無論TS -> JS -babel> ES5
或Babel -> JS -ts> ES5
之所以人們這樣做是不同的語法支持:https://kangax.github.io/compat-table/
如上所述。我不使用巴貝爾as I TypeSafety is big for me and don't need to use syntax that isn't yet type safe
Typescript是從FROM ES2016開始的演變。 Typescript幫助來自c#和java背景的開發人員成爲使用各種工具的JavaScript開發人員。 Visual Studio代碼,WebStorm,崇高等
爲什麼:我們不能單獨使用打字稿轉換TS到ES5 編譯與打字稿到ES5的並不完整,因爲它是與巴貝爾。一些現代語言功能(如Array.prototype.find)無法使用TypeScript編譯爲ES5。
這裏是鏈接,將幫助你:https://www.stackchief.com/blog/TypeScript%20or%20Babel%3F