にプロパティを明示的に設定することで、オブジェクトのグローバル名前空間を設定しますwindow
。
window.MyNamespace = window.MyNamespace || {};
TypeScript はMyNamespace
次のような点を強調して警告します:
プロパティ 'MyNamespace' は、タイプ 'window' の値に存在しません。
MyNamespace
アンビエント変数として宣言し、明示性を削除することでコードを機能させることはできますwindow
が、そうしたくありません。
declare var MyNamespace: any;
MyNamespace = MyNamespace || {};
window
どうすればそこを維持し、TypeScript を満足させることができるでしょうか?
余談ですが、TypeScript が は間違いなく何でも含めることができるwindow
型であると警告するのは特に面白いと思います。any
ベストアンサー1
私はちょうどこの答えを見つけました別のStack Overflowの質問の回答。
declare global {
interface Window { MyNamespace: any; }
}
window.MyNamespace = window.MyNamespace || {};
window
基本的に、新しいプロパティについて伝えるために既存のインターフェースを拡張する必要があります。