NEWS
Benutzung Typescript
-
Hallo zusammen,
ich habe im Moment viele Probleme mit Javascript weil ich mit den übergebenen Objekten durcheinander komme. Ich erwarte z.B. ein Objekt vom Type "state" aber übergebe ein Objekt vom typ "event". Würde sowas direkt von Type- statt Javascript beim compilieren bemerkt werden?
Wird Typescript für Script in IOBroker aktiv genutzt?
Gibt es Beispiele für Typescript, speziell für IOBroker?
Gibt es eine Referenz z.B. über die verwendeten Typen/Klassen?Danke und Gruß
Dirk H. -
@Dirk_H sagte:
Objekt vom Type "state" aber übergebe ein Objekt vom typ "event".
Du meinst ioBroker-Objekte ? Da gibt es keinen Typ "event".
@Dirk_H sagte in Benutzung Typescript:
Würde sowas direkt von Type- statt Javascript beim compilieren bemerkt werden?
Typescript kennt keine ioBroker-Objekte.
@Dirk_H sagte in Benutzung Typescript:
Gibt es eine Referenz z.B. über die verwendeten Typen
Siehe unter Objekttypen.
-
Danke erstmal,
@paul53 said in Benutzung Typescript:
Siehe unter Objekttypen.
Sowas habe ich gesucht, danke!
@paul53 said in Benutzung Typescript:
Du meinst ioBroker-Objekte ? Da gibt es keinen Typ "event".
den Typ Event habe ich tatsächlich erfunden...
Ich hatte erwartet, dass ich bei der "on" Funktion das Objekt des veränderten States bekomme. Stattdessen bekomme ich ein anderes Objekt was ich "Objekt vom Typ event" genannt habe.var HmBAT_STATE = $('channel[state.id=*.BATTERY_STATE]'); HmBAT_STATE.on(function(Event_obj) { //The incoming Event_obj is not the object of the State that has changed, i.e. this has to be found! debug("Type: " + toType(Event_obj) + " Content: " + util.inspect(Event_obj, { showHidden: true, depth: null })); debug("Ermittle State object from Event Object" + util.inspect(getObject(Event_obj.id), { showHidden: true, depth: null })) EvalBatState(getObject(Event_obj.id)); });
@paul53 said in Benutzung Typescript:
Typescript kennt keine ioBroker-Objekte.
Hmm ok, ich programmiere sonst C(++) und würde dort für die Pflichtelemente eine Basisklasse anlegen und für jeden IO-Broker Objekttyp eine eigene Klasse. Dann könnte man nicht einfach an eine Funktion die für Objekte vom Typ Device ist ein Objekt-Typ State übergeben. Auf so etwas wäre ich gern schon früzeitg (vom "Compiler" / beim Speichern) hingewiesen worden