You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript报错:window对象无electron属性的解决咨询

问题解答

报错原因确认

你的猜测完全正确。TypeScript对Window类型有默认定义,其中并不包含electron属性;而预加载脚本是在运行时给window动态添加的这个属性,IDE和TypeScript编译器在静态检查阶段无法感知到这个扩展,因此抛出Property 'electron' does not exist on type 'Window & typeof globalThis'的错误。

如何消除错误

最佳方案是通过扩展TypeScript的全局类型声明,让编译器识别你给window添加的属性:

  1. 在项目源码目录下创建一个类型声明文件(比如src/types/electron.d.ts)
  2. 在文件中添加以下内容:
declare global {
  interface Window {
    electron: {
      packageName: typeof import('package-name');
    };
  }
}

export {};

这样TypeScript就能正确识别window.electron及其子属性的类型,同时还能提供代码提示,避免后续的类型错误。

关于any类型的写法

将window转为any的写法虽然能快速消除错误,但不是最佳实践。因为any会完全关闭TypeScript的类型检查:

  • 无法获得packageName的类型提示
  • 如果后续属性名拼写错误、类型变更,TypeScript无法提前预警,容易导致运行时bug

内容的提问来源于stack exchange,提问作者Yolo_chicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:04:55