如何在 Angular 严格模式下正确访问对象的 "dynamic" 添加属性?

How to properly access "dynamic" added properties on Objects on Angular strict mode?

我正在使用 PrimeNG (Angular) 并且在严格模式下,它的文档案例之一是这样的:

if (window['Prism']) {
...any code
}

VSCode 向我展示了这个:Element implicitly has an 'any' type because index expression is not of type 'number'.

但是我不知道如何绕过这个错误..

我会像这样先将 window 转换为未知

(window as unknown).Prism

https://mariusschulz.com/blog/the-unknown-type-in-typescript

您可以声明它以告诉 TypeScript 编译器 属性 Prism 在其他地方定义:

declare interface Window { // NOTE: Capital "W"
    Prism: any;
};

如果您知道 window.Prism 的实际类型,您可以指定它而不是 any