私はターゲットとlibオプションと、それらがソースコードでサポートされている機能とどのように対話するのか混乱しています。ドキュメントを少し改善する必要があると感じていますので、問題を提起する前にここで質問しています。ターゲットとlibコンパイラオプションの明確化が必要
ターゲットが、出力コードが(モジュールローダーを追加して)実行するのに必要なJSのバージョンを指定しているとは思っていませんでした。このため、TSがソースでサポートするすべての高度なJS機能(オブジェクトスプレッドなど)を常に使用することができ、コンパイラは指定したターゲットに適切なコードを生成します。私はそれが手にpolyfillsなどを持っていたと仮定し、コードはターゲットVM上で実行されます。
しかし、libオプションのドキュメントでは、デフォルトのlibsをターゲットに応じて指定しています。しかし、libsはどのソース・タイプが利用可能であるかに影響を及ぼし、使用できるコードに影響を与えます。したがって、使用できるソース機能はターゲットに依存します。それは私が期待した通りではありません。私はlibの私の理解は、彼らは実際には何を言っているわけではありませんが、彼らは別のAPIで入力されているということです。
ここでは、タイプに依存しない言語機能やその他の機能があります。しかし、それがこのような状況の理由の一部であるかどうかは明らかではありません。
誰かがこれを明確にしてもらえますか?
2番目の質問は、同じものとして通常文書化されている場合、ES6とES2015の両方のlibが存在する理由です。
おかげ
感謝を。だから、混乱の根源は、 '' '-target''が2つのことを加え、いくつかの言語機能がダウンコンパイルされているのに対し、他のものはソースではなくlibを必要とすることです。 –
それもなぜあなたはTSとBabelを使うのですか?:)多くの現在のブラウザをターゲットにする良い方法は、BabelがES5に移行するTSのターゲットES6です。 –