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

Typescript中Window对象无Scaledrone属性报错问题求助

解决TypeScript中Scaledrone的类型报错问题

报错Property 'Scaledrone' does not exist on type 'Window & typeof globalThis'.ts(2339)是因为TypeScript的全局类型定义里未包含Scaledrone属性,以下是几种可行的解决方式:

方法1:扩展Window全局接口

在项目中创建或修改一个.d.ts类型声明文件(比如src/types.d.ts),添加对应代码:

// 若通过npm安装了scaledrone包
interface Window {
  Scaledrone: typeof import('scaledrone').Scaledrone;
}

// 若通过CDN引入、未安装npm包
interface Window {
  Scaledrone: new (roomId: string, options?: { data?: unknown }) => void;
}

TypeScript会自动识别这个扩展接口,不再抛出类型错误。

方法2:使用类型断言

直接在代码中对window做类型断言,临时绕过类型检查:

// 简单的any断言
drone = new (window as any).Scaledrone('XXXXXXXXXXXXXXXX', {
  data: meRef.current,
});

// 更精确的自定义类型断言
type ScaledroneInstance = {
  // 可根据Scaledrone实例的实际方法补充类型,比如on、off等
  on(event: string, callback: () => void): void;
};
type ScaledroneConstructor = new (roomId: string, options?: { data?: unknown }) => ScaledroneInstance;

drone = new (window.Scaledrone as ScaledroneConstructor)('XXXXXXXXXXXXXXXX', {
  data: meRef.current,
});

方法3:安装官方类型定义包

如果项目通过npm安装了scaledrone依赖,直接安装对应的类型包即可:

npm install @types/scaledrone --save-dev

安装完成后,TypeScript会自动读取官方类型定义,无需额外配置。

内容的提问来源于stack exchange,提问作者Danko Grgić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:07