Typoskript - Objekt ist eventuell 'null'
Ich bekomme diese Fehlermeldung für die folgenden, aber das Programm läuft perfekt
var video = document.querySelector('#camera-stream'),
if(!navigator.getMedia){
displayErrorMessage("Your browser doesn't have support for the navigator.getUserMedia interface.");
}
else{
//Request the camera.
navigator.getMedia(
{
video: true
},
//Success Callback
function(stream:any){
//Create an object URL for the video stream and
//set it as src of our HTLM video element.
video.src = window.URL.createObjectURL(stream);
//Play the video element to start the stream.
video.play();
video.onplay = function() {
showVideo();
};
},
//Error Callback
function(err:any){
displayErrorMessage("There was an error with accessing the camera stream: " + err.name, err);
}
);
}
Ich habe versucht, die Lösung in diesen Fragen aber nicht für mich arbeiten.
Was ist die richtige fix für diesen Fehler?
- Bitte zählen Sie die Fehler als text und nicht als Bilder.
- sorry für den unsachgemäßen Frage Weise... die Frage, die schon bearbeitet
- Versuchen Sie dieses video!.src
- danke.. deine Antwort gelöst, mein Fehler...tqvm
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen casting:
zu:
Typoskript hat eine spezielle syntax für den Umgang mit diesem Szenario.
Wenn Sie wissen der Wert ist eigentlich weder
null
nochundefined
aber nicht der compiler, Sie können die nicht-null-Behauptung Betreiber!
diese zu kommunizieren. Dies funktioniert auf einem Ausdruck durch den Ausdruck Grundlage.Jedoch, es ist weit mehr wahrscheinlich, dass wir nicht definitiv wissen, dass das Objekt in Frage ist weder
null
nochundefined
und ja, die Möglichkeit ist das was der Typ wurde absichtlich geschrieben, um zu vermitteln. In einem solchen Fall ist die Verwendung der!
syntax unterdrücken möchten einen compile-Zeit-Fehler, konnte aber das Ergebnis in eine runtime-Fehler. In diesem Fall sollte man eher behandeln die Möglichkeit, durch die Gewährleistung, dass das Objekt truthy dereferenzieren, bevor es. Ein gemeinsames idiom für das schreiben dieses Codes istIn der Tat, Typoskript verwendet ein Kontext-Typ-überprüfung Technik, bekannt als control-flow-Analyse, und dabei bestimmt, dass
video
kann getrost aufgelöst werden, in derif
Anweisungsblock. Also, der obige code führt nicht jeder Fehler, da Typoskript weiß, dass es sicher ist.Ist es am besten, um die
!
syntax sehr sparsam.Simon ' s Antwort kann auch geschrieben werden mit
as
(bevorzugt von einigen linters wie airbnb):In der Regel, wenn Sie möchten, deaktivieren Sie die strengen null prüft-Funktion in Maschinenschrift verwenden, können Sie den Charakter
!
wo der Fehler gezeigt wird, wie unten:Hinweis: tun Sie dies, wenn Sie sicher sind, über das Objekt