"target": "es5"
でコンパイルされたTypeScriptプロジェクトがあります。私はcore-jsのSet
を使用しているので、私のプロジェクトにはcore-jsと@ types/core-jsがインストールされています。 しかし、core-js d.tsにはグローバルな宣言Set
とMap
(および他のES6の機能)が含まれているので、TypeScriptコンパイラを使用することができます。これは古いブラウザではうまく動作しません。core-jsおよびターゲットES5のTypescriptでサポートされていないES6機能を使用できます
明らかにインターフェイス用に必要なので、core.d.tsをビルドから除外することはできません。
コンパイラが私にES6機能を使用させずにコアjとそれに対応する型定義を使用しないようにする方法はありますか?
? es6機能を使用したくない場合は、それらの機能に対応するタイプは必要ありません。 –
私は 'Set'を使いたいです。しかし、私はcore-jsをグローバルな置き換えとして使うのではなく、むしろライブラリとして使うことを望んでいます。ですから、core-js/library/fn/setからcoreSetとして 'import * 'を必要とするファイルに';ですから、私は '新しいCoreSet()'を実行できます。しかし、問題は私も 'new Set ()'を実行することができ、完全にコンパイルしてブラウザで失敗することです。 –
Dina
私は参照してください。 core-jsはpolyfillなので、宣言はグローバルスコープを変更するように設計されています。 set interfacesの宣言を見つけたり作成したりすることをお勧めします。かなりシンプルで、@ types/core-jsパッケージを削除して名前空間に混乱を招くことがあります。 –