我使用下面的代码只是为了查看usb端口上连接的设备。获取错误"属性usb在Navigator"类型上不存在在编译时我运行' ng'命令提示符中的命令。
ngOnInit() {
async () => {
let devices = await navigator.usb.getDevices();
devices.forEach(device => {
// Add |device| to the UI.
console.log(device);
});
}
}
答案 0 :(得分:2)
如果您确定navigator.usb
存在,则可以扩展界面以包含一些类型信息:
interface Navigator {
usb: {
getDevices(): any[];
}
}
这将解决编译时错误(但如果usb
不存在则会导致运行时错误。)
接口需要放在同一个公共根...所以如果你在一个模块中,你可能需要使用:
declare global {
interface Navigator {
usb: {
getDevices(): any[];
}
}
}
答案 1 :(得分:1)
最好的解决方案是使用@types/w3c-web-usb
键入程序包。
使用任一支纱将其添加到您的项目中
yarn add --dev @types/w3c-web-usb
或npm
npm install --save-dev @types/w3c-web-usb
答案 2 :(得分:1)
yarn add -D @types/w3c-web-usb
或
npm install --save-dev @types/w3c-web-usb
然后,在打字稿文件的顶部添加以下指令:
/// <reference types="w3c-web-usb" />