[英]Can I target ES6 with Typescript if I am using babel-polyfill?
我正在編寫一個Typescript / React / Redux應用程序,它利用了現代ES6 +功能,如生成器和對象傳播。
我目前正在將我的tsconfig.json目標設置為ES5
並在我的應用程序中包含babel-polyfill
polyfill。
由於在大多數瀏覽器中ES6比ES5 快 ,我更願意從我的Typescript配置中定位ES6。 但是,我擔心我將無法支持盡可能多的瀏覽器。
babel-polyfill是否提供與轉換為ES5目標相同水平的ES5支持?
babel-polyfill是否提供與轉換為ES5目標相同水平的ES5支持?
沒有。
babel-polyfill
添加了缺少的ES6 運行時類和方法 。 例如,如果運行腳本的瀏覽器沒有Promise
或Array.prototype.includes
,它會將這些實現添加到全局范圍中,以便在代碼嘗試使用它們時存在。
它無法為瀏覽器添加缺少對ES6 語法的支持。 如果您的JavaScript代碼包含ES6語法(例如class
, ...
或yield
),那么ES5瀏覽器將無法解析您的代碼 。 運行時沒有額外的JavaScript代碼可以改變瀏覽器解析代碼的方式,因此polyfill對此沒有幫助。
底線:如果您想使用ES6語法並且仍支持ES5瀏覽器,則必須將代碼轉換為ES5(通過從TypeScript定位ES5,或使用Babel轉換)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.