我有一個TypeScript項目編譯"target": "es5"
。我使用core-js的Set
,所以我在我的項目中安裝了core-js和@ types/core-js。 但是,由於core-js d.ts包含全局聲明Set
和Map
(以及其他ES6功能),因此TypeScript編譯器允許我使用它們,這在舊的瀏覽器中顯然不起作用。core-js和Typescript與目標ES5允許使用不受支持的ES6功能
我不能排除core.d.ts從構建,因爲我明顯需要它的接口。
編譯器有沒有辦法阻止我使用ES6功能並仍然使用core-j及其相應的類型定義?
你從它需要什麼樣的接口?如果你不想使用es6功能,那麼你不應該需要與這些功能相對應的類型。 –
我想使用'Set'。但我不想用core-js作爲全球替代品,而是作爲一個圖書館。因此,我從'core-js/library/fn/set';''中導入*作爲CoreSet作爲需要它的文件。所以我可以做'新的CoreSet()'。但問題是,我也可以執行'Set Set ()',它編譯完美,然後在瀏覽器中失敗。 –
Dina
我明白了。由於core-js是一個polyfill,它的聲明旨在修改全局範圍。我建議你找到或創建你自己的設置接口的聲明,這是相當簡單的,並且絕對刪除@ types/core-js包,因爲它會對你的命名空間造成嚴重破壞 –