在TypeScript中,如何显式地在`window`上设置一个新的属性?
在TypeScript中,如何显式地在`window`上设置一个新的属性?
我通过明确定义window
上的属性来为我的对象设置全局命名空间。
window.MyNamespace = window.MyNamespace || {};
TypeScript会强调MyNamespace
并抱怨:
属性“MyNamespace”在类型“window”上不存在
any”
我可以声明MyNamespace
作为一个环境变量,省略window
的明确性以使代码生效,但我不想这样做。
declare var MyNamespace: any; MyNamespace = MyNamespace || {};
该如何保留window
并使TypeScript满意?
顺便说一下,我发现特别有趣的是TypeScript抱怨,因为它告诉我window
是任何类型,明显可以包含任何内容。
admin 更改状态以发布 2023年5月25日