TypeScript用libusb开发键盘灯光驱动遇device.interfaces可能未定义问题
解决TypeScript结合libusb获取USB接口时的编译错误
1. 修复代码语法错误
你代码中行尾的<-problem is here未添加注释符号,这会导致编译器解析失败,先修正这一点:
const deviceInterface = device?.interfaces[IN]; // <-problem is here
2. 确认TypeScript版本支持可选链
可选链操作符(?.)需要TypeScript 3.7及以上版本支持。如果你的TS版本过低,执行命令升级:
npm install typescript@latest --save-dev
3. 安装libusb的类型定义
若未安装@types/usb,TypeScript无法正确识别USB设备对象的类型,导致类型推断错误。执行安装命令:
npm install @types/usb --save-dev
4. 兼容旧版TypeScript的替代方案
如果不想升级TS版本,可以改用条件判断确保设备存在后再访问接口,彻底规避类型提示问题:
import * as usb from 'usb'; const VID = 0X0C45; const PID = 0x672E; const IN = 1; const main = async () => { const device = usb.findByIds(VID, PID); console.log(device); if (device) { device.open(); const deviceInterface = device.interfaces[IN]; console.log(deviceInterface); } else { console.error("未找到指定的USB设备"); } } main();
内容的提问来源于stack exchange,提问作者Alex Chitic
相关产品推荐
相关产品推荐

