我一直在使用 web midi API 从我插入计算机的外部硬件中成功读取 MIDI 消息。以下代码在我将其放入浏览器控制台时有效,但仅在控制台中。
当我在打字稿中编写相同的代码时(它编译时没有错误),它什么也不做。有谁知道为什么会这样?我在同一个文件中编写的所有其他 T 都可以编译并且工作正常,除了这个。我正在使用 Webpack 和 Webpack 开发服务器来捆绑我的 Ts。我的问题会与此有关吗?我没有太多使用 Ts 或 Webpack 的经验。
这是有效的代码:
navigator.requestMIDIAccess()
.then(access => {
console.log(access)
// getting devices
const devices = access.inputs.values()
for (const device of devices){
console.log("there is a device")
console.log(device)
device.onmidimessage = onMidiMessage
}
console.log(access.inputs.values, "the values")
})
.catch(err => console.log(err))
function onMidiMessage(message){
console.log(message)
}
我用过的Ts代码和这个基本一样,只是声明了devices
和的类型message
为: any
。我知道这可能不是编写 Ts 的最佳方式,但我不确定如何取消这些类型。为了帮助,我安装了@types/webmidi