bearbeiten sein: Ich bin mit Typoskript v2.2.1document.getElementById („id“) kann null
Ich bin neu in Typoskript und ich bin nicht sicher, was die sauberste Weg mit DOM-Elemente des Umgangs, die möglicherweise oder kann nicht existieren ist. Im Grunde möchte ich prüfen, ob ein Element existiert, und wenn dies der Fall ist, füge einen Ereignis-Listener hinzu (Ich habe --strict_null_checks
aktiviert).
Als ich ihm die JS-ähnliche Art und Weise tun:
const myElement = document.getElementById('my-id');
if (myElement) {
myElement.addEventListener('click', (e:Event) => {
// Do stuff.
});
}
Ich erhalte den Fehler my_script.ts(3, 3): error TS2531: Object is possibly 'null'.
ich um diesen durch die Verwendung einer nicht-null Behauptung bekommen kann:
const maybeMyElement = document.getElementById('my-id');
if (maybeMyElement) {
const myElement = maybeMyElement!;
myElement.addEventListener('click', (e:Event) => {
// Do stuff.
});
}
Aber mein Verständnis ist, dass diese Art von Behauptungen generell verpönt sind, und ästhetisch mag ich es nicht, doppelt so viele Variablen zu erzeugen.
Gibt es einen saubereren Weg, dies zu tun?
Welche Version des Typescript-Compilers verwenden Sie? Ihr erstes Beispiel funktioniert wie erwartet für mich (mit 'strictNullChecks' on). – y2bd
Hoppla, tut mir leid, ich habe vergessen, die Version zu erwähnen. Ich benutze Version 2.2.1. –