在从2. x升级到4. x并将types cript升级到2. x后,开始出现以下错误,该错误与以前的版本配合良好
无法调用其类型缺少调用签名的表达式。类型'((未完成?:(值:MediaStream)=
我的代码如下
getMediaStream(options:{video: boolean, audio: boolean}) {
let self: Caller = this;
return self.getUserMedia(options)
.then(stream => {
console.log('got our media stream:', stream);
self.privateMedia = createObjectURL(stream);
self.privateStream = stream;
return stream;
})
.catch(() => {
console.log('Could not get access to microphone & camera');
});
}
public getUserMedia(constraints) {
if (window.navigator.mediaDevices && window.navigator.mediaDevices.getUserMedia) {
return window.navigator.mediaDevices.getUserMedia(constraints);
}
return new Promise((resolve, reject) => {
const getMedia = window.navigator.getUserMedia;
if (!getMedia) reject(new Error('Browser unsupported'));
getMedia.call(navigator, constraints, resolve, reject);
});
}
打字self。getUserMedia(选项)
到任何/promise
解决了问题。
所以我使用了以下代码,它起了作用:
getMediaStream(options:{video: boolean, audio: boolean}) {
let self = this;
return (<Promise>self.getUserMedia(options))// in place of promise 'any' or other any superclass to promise will work as well
.then(stream => {
console.log('got our media stream:', stream);
self.privateMedia = createObjectURL(stream);
self.privateStream = stream;
return stream;
}).catch(() => {
console.log('Could not get access to microphone & camera');
});
}