NEWS
Problem beim Vergleichen
-
Hi,
ich habe das folgende Szenario:const TemperatureDp = "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"; if (TemperatureDp != "") { on("TemperatureDp", function (dp) { Temperature = dp.state.val; log("Current Temperature is " + Temperature); }); }Ich bekomme aber einen Kompilerfehler:
Operator '!=' cannot be applied to types '"daswetter.0.NextHours.Location_1.Day_1.current.temp_value"' and '""'. const TemperatureDp: "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"Kann mir bitte jemand helfen? Wieso kommt das? Wie kann ich dieses Vergleich machen?
Danke! -
Hi,
ich habe das folgende Szenario:const TemperatureDp = "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"; if (TemperatureDp != "") { on("TemperatureDp", function (dp) { Temperature = dp.state.val; log("Current Temperature is " + Temperature); }); }Ich bekomme aber einen Kompilerfehler:
Operator '!=' cannot be applied to types '"daswetter.0.NextHours.Location_1.Day_1.current.temp_value"' and '""'. const TemperatureDp: "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"Kann mir bitte jemand helfen? Wieso kommt das? Wie kann ich dieses Vergleich machen?
Danke!@mrFenyx sagte:
Ich bekomme aber einen Kompilerfehler:
Das ist kein Compiler-Fehler, sondern der Javascript-Editor meckert fälschlicherweise. Der Code funktioniert, wenn die Variable Temperature auch deklariert wird.
let Temperature = dp.state.val; -
@mrFenyx sagte:
Ich bekomme aber einen Kompilerfehler:
Das ist kein Compiler-Fehler, sondern der Javascript-Editor meckert fälschlicherweise. Der Code funktioniert, wenn die Variable Temperature auch deklariert wird.
let Temperature = dp.state.val;@paul53 @mrFenyx
Das Problem ist Zeile 2. Der Compiler erkennt, dass TemperatureDp niemals "" sein kann, weil es in der Zeile darüber als konstant definiert und mit einem Wert versehen wird. Die if-Abfrage ist daher sinnlos.@mrFenyx Wenn wir schon dabei sind: Zeile 3 ist ebenfalls murks - entferne die Anführungszeichen um TemperatureDp, sonst wird auf einen nicht existierenden State
"TemperatureDp"getriggert statt auf"daswetter.0.NextHours.Location_1.Day_1.current.temp_value":- on("TemperatureDp", function (dp) { + on(TemperatureDp, function (dp) { -
@paul53 @mrFenyx
Das Problem ist Zeile 2. Der Compiler erkennt, dass TemperatureDp niemals "" sein kann, weil es in der Zeile darüber als konstant definiert und mit einem Wert versehen wird. Die if-Abfrage ist daher sinnlos.@mrFenyx Wenn wir schon dabei sind: Zeile 3 ist ebenfalls murks - entferne die Anführungszeichen um TemperatureDp, sonst wird auf einen nicht existierenden State
"TemperatureDp"getriggert statt auf"daswetter.0.NextHours.Location_1.Day_1.current.temp_value":- on("TemperatureDp", function (dp) { + on(TemperatureDp, function (dp) {@AlCalzone sagte:
Die if-Abfrage ist daher sinnlos.
Das kann die Syntax-Prüfung des Editors erkennen ?
-
@AlCalzone sagte:
Die if-Abfrage ist daher sinnlos.
Das kann die Syntax-Prüfung des Editors erkennen ?
-
@AlCalzone sagte:
das kann es
Danke. Ja, eine Deklaration mit var oder let anstelle von const wird beim Vergleich nicht angemeckert.
-
Danke. Die Frage wäre, was wenn ich TemperatureDp als "" (leer) deklariere. Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte.
EDIT: habe es als var deklariert und es scheint zu gehen ;)
@mrFenyx sagte:
Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte.
Dann kann die ID aber nicht als Konstante deklariert sein.
Übrigens stört sich der Compiler nicht an dem sinnlosen Vergleich, sondern führt den Code richtig aus.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden