Angular 13获取window对象属性报隐式any类型错误如何解决
修复方案
首先说明suppressImplicitAnyIndexErrors配置失效的原因:
- 该配置项自 TypeScript 4.4 版本起已正式废弃,Angular 13 默认搭载 TS 4.4+ 版本,配置不再生效
- 若项目启用了 ESLint 校验,TSConfig 配置无法覆盖 ESLint 的
no-implicit-any类规则,因此报错仍然存在
以下是三种可行的修复方案,按推荐优先级排序:
方案1:安装Stripe官方类型包(最推荐)
直接安装Stripe官方提供的类型定义包,自动注入全局Window接口的Stripe类型声明:
- 执行安装命令:
npm install @stripe/stripe-js --save - 安装完成后直接改写原代码即可,无需方括号索引:
private _stripe: StripeFactory = window.Stripe;
方案2:手动扩展全局Window接口
如果不想引入额外依赖,可以手动添加全局类型声明:
- 在项目
src目录下新建global.d.ts类型声明文件 - 写入以下内容:
export {}; declare global { interface Window { Stripe?: StripeFactory; } }
- 确认
tsconfig.json的include数组包含src/**/*.d.ts,类型声明会自动生效,原代码可改为直接访问window.Stripe。
方案3:临时类型断言(适合快速测试)
如果只是临时调试,可以直接对window做any类型断言跳过校验:
private _stripe: StripeFactory = (window as any)['Stripe'];
注意:该方案会丢失类型校验,不推荐在正式项目中长期使用
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

