Я использую WebRTC в Angular 2.
В TypeScript 1.x я могу успешно использовать это.
navigator.mediaDevices.getUserMedia(constraints)
.then(myStream => {
this.myStream = myStream;
})
.catch(error => {
console.log(error);
});
Но после обновления до TypeScript 2.x я получил эту ошибку в моем терминале при запуске npm run watch
:
ошибка TS2339: свойство «catch» не существует для типа «PromiseLike».
Мой магазин IDE WebStore тоже показывает красный цвет:
Я уже сделал npm install --save-dev @types/webrtc
.
Мой файл tsconfig.json:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"module": "commonjs",
"removeComments": true,
"sourceMap": true,
"lib": ["es6", "dom"],
"types": [
"body-parser",
"compression",
"express",
"express-session",
"mime",
"node",
"serve-static",
"webrtc",
"ws"
]
},
"include": [
"node_modules/@types/**/*.d.ts",
"src/**/*.ts"
],
"exclude": [
"node_modules",
"!node_modules/@types/**/*.d.ts"
],
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
Я использую универсальный стартер как начало, поэтому мой nodemon.json strong > и package.json совпадают с ними, только пакетов больше.
Как мне избавиться от этой ошибки?
getUserMedia
? - person   schedule 12.08.2016Promise<MediaStream>
- person Hongbo Miao   schedule 12.08.2016getUserMedia.then
возвращаетPromise
, а неPromiseLike
в моей настройке. Таким образом, я не получаю сообщения об ошибке. Появляется ли эта ошибка в другом месте вашего реального кода или вы получаете эту ошибку именно с этим кодом? - person maiermic   schedule 13.08.2016