TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか? 質問する

TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか? 質問する

にプロパティを明示的に設定することで、オブジェクトのグローバル名前空間を設定します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基本的に、新しいプロパティについて伝えるために既存のインターフェースを拡張する必要があります。

おすすめ記事