不动产;usb";“类型”上不存在;“导航器”;在angular2 typescript项目中

不动产;usb";“类型”上不存在;“导航器”;在angular2 typescript项目中,angular,typescript,Angular,Typescript,我使用下面的代码只是为了查看usb端口上连接的设备。在命令提示符下运行“ng serve”命令时,在编译时出现错误“类型导航器上不存在属性usb” ngOnInit() { async () => { let devices = await navigator.usb.getDevices(); devices.forEach(device => { // Add |device| to the UI.

我使用下面的代码只是为了查看usb端口上连接的设备。在命令提示符下运行“ng serve”命令时,在编译时出现错误“类型导航器上不存在属性usb”

ngOnInit() {
    async () => {
        let devices = await navigator.usb.getDevices();
        devices.forEach(device => {
          // Add |device| to the UI.
          console.log(device);
        });
    }
}

如果您确定存在
navigator.usb
,则可以扩展该接口以包含其某些类型信息:

interface Navigator {
    usb: {
        getDevices(): any[];
    }
}
这将解决编译时错误(但如果
usb
不存在,将导致运行时错误)

接口需要放在同一个公共根目录中。。。因此,如果您在模块中,您可能需要使用:

declare global {
    interface Navigator {
        usb: {
            getDevices(): any[];
        }
    }
}

如果您确定存在
navigator.usb
,则可以扩展该接口以包含其某些类型信息:

interface Navigator {
    usb: {
        getDevices(): any[];
    }
}
这将解决编译时错误(但如果
usb
不存在,将导致运行时错误)

接口需要放在同一个公共根目录中。。。因此,如果您在模块中,您可能需要使用:

declare global {
    interface Navigator {
        usb: {
            getDevices(): any[];
        }
    }
}

最好的解决方案是使用
@types/w3cwebusb
打字包

使用以下任一方法将其添加到项目中:

纱线添加--dev@types/w3c web usb

或npm


npm安装——保存dev@types/w3cwebusb

最好的解决方案是使用
@types/w3cwebusb
打字包

使用以下任一方法将其添加到项目中:

纱线添加--dev@types/w3c web usb

或npm

npm安装--保存dev@types/w3cwebusb

纱线添加-D@types/w3cwebusb

npm安装--保存dev@types/w3cwebusb
然后,在typescript文件的顶部添加以下指令:

//
纱线添加-D@types/w3c web usb

npm安装--保存dev@types/w3cwebusb
然后,在typescript文件的顶部添加以下指令:

//

如何使用它?在我运行
npm安装--save dev@types/w3c web-usb
之后,编译器在构建时仍然显示
属性“usb”在类型“Navigator”上不存在。如何解决它?如何使用它?在我运行
npm安装--save dev@types/w3c web usb
之后,编译器在构建时仍然显示
属性“usb”在类型“Navigator”上不存在。如何解决?