typescript - 如何在 TypeScript 中更改本机窗口对象类型?
问题描述
我想将嵌套对象添加到本机 window.navigator 对象。但它显示了错误:
TS2687:“导航器”的所有声明必须具有相同的修饰符。
看起来它与另一个声明有冲突。如何修改已经声明的接口?
我的index.d.ts:
interface INavigator extends Navigator {
usb?: {
getDevices?: () => Array<string>
}
}
declare global {
interface Window {
navigator: Navigator
}
}
解决方案
您应该只增加原始Navigator
界面,它将自动合并并应用于Window.Navigator
:
declare global {
interface Navigator {
usb: {
getDevices: () => Array<string>
}
}
}
const navigator = window.navigator;
const devices = navigator.usb.getDevices();
推荐阅读
- azure - Azure 函数 - 队列触发器 - 对正在使用的库的混淆 (C#)
- java - 我想将我的数据库数据从数据库写入 excel 文件
- java - Oracle SQL Developer 抱怨 java 版本丢失
- c# - AWS Cloudwatch FilterLogEventsRequest with FilterPattern for JSON 失败
- postgresql - 如何找出每个 integration_id 组的 name 列被批准的最低日期?
- r - 根据同一列中保存的值过滤行
- label - 如何让 Stata 在数据编辑器中显示所有值标签?
- angular - Angular:如何将组件用作路由条目和另一个组件的模板
- java - Junit5 @ParameterizedTest 与自定义测试描述符
- asp.net-core - 使用 SignalR.Client 时启动时出错