我正在尝试使用Web Midi API构建Angular2项目。
运行from flask import Flask, Response, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def get_data():
print('Recieved from client: {}'.format(request.data))
return Response('We recieved something…')
if __name__ == '__main__':
app.run(debug=True)
时,由于抛出某些错误,我无法完成此过程,具体来说:
Error in bail mode: [default] /Users/JmsToh/GitHub/web-editor/web-editor/src/app/midi.service.ts:43:22 Property 'requestMIDIAccess' does not exist on type 'Navigator'.
这来自代码的这一部分:
ng build
运行if (navigator.requestMIDIAccess) {
this.browserMidiCompatible = true;
navigator.requestMIDIAccess({ sysex: false })
.then(this.onMIDISuccess.bind(this), this.onMIDIReject.bind(this));
} else {
alert("Platform not compatible");
}
时,该应用在Chrome上正常运行。有没有办法让Angular2在构建时忽略错误?
答案 0 :(得分:3)
好的,我设法通过这样做来删除此错误:
navigator["requestMIDIAccess"]
答案 1 :(得分:3)
使用以下方法添加necessary type definitions:
npm install @types/webmidi
重新启动tsc
后应自动发现它们。
注意:如果在安装库之后看到错误“找不到名称
Map
”,请参阅this answer。
答案 2 :(得分:1)
安装@types/webmidi
使我可以使用定义并使vs代码正常工作,但是不足以进行编译。
我能够通过在tsconfig中添加此编译器选项来解决此问题:
"types": ["webmidi"]
答案 3 :(得分:0)
通过npm install -s @types/webmidi
命令安装,Angular 7
可以在源代码中使用它:
const requestMIDIAccess = navigator['requestMIDIAccess'];
if (requestMIDIAccess) {
requestMIDIAccess().then(onMIDISuccess, onMIDIFailure);
console.log('This browser supports WebMIDI!');
} else {
console.log('WebMIDI is not supported in this browser.');
}