「グローバル宣言」とは何ですか?それはどのようにして可能ですか?私はこのコードをLodashタイピングの中に見つけました。問題は、グローバルは名前空間、モジュール、関数、または変数ではないため、これをmy.d.tsファイルに正確に複製しようとすると、許可されないということです。だから問題は、この宣言がTypeScriptでどのように可能かということです。
PSそれでこれを可能にするいくつかの追加のコンパイラオプションがあるかもしれませんか?
declare global {
interface Set<T> { }
}
これはコンパイラの設定には依存しません。 declare global
は、import
またはexport
を含むファイル内で使用され、グローバルスコープで宣言します。これは、import
またはexport
を含むファイルで必要です。これらのファイルはモジュールと見なされ、モジュールで宣言されたものはすべてモジュールスコープ内にあるためです。
モジュールではない(つまり、import
/export
が含まれていない)ファイルでdeclare global
を使用すると、エラーが発生します。これは、そのようなファイルのすべてがグローバルスコープにあるためです。