NEWS
iobroker-typen einbinden für typescript
-
du hast nicht erwähnt in welchem umfeld du da was machst.
einen adapter programmieren?dann fügst du dort lieber das packet iobroker.adapter-dev hinzu
da sind die types dann mit dabei
der adapter creator fügt den auch schon automatisch mit dazu.wenn es um den javascript adapter geht, da weiß ich nicht was alles verfügbar ist. aber da sind schon einige typen da.
-
@oliverio
danke für die Antwort. Bräuchte die Typen für Typescript. Da man dort Typisiert programmieren kann und dann gleich die Objekte mit der entsprechenden Struktur ansprechen kann, rsp. muss.
Ich stosse immer wieder auf dieses Problem, wenn ich iobroker-spezifische Typen ansprechen will.Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
Muss ich den mit npm installieren? -
@iob69
Du hast noch immer nicht gesagt WO du das brauchst?- entwickeltst du einen Adapter in Typescript?
- oder schreibst du im java-scritp Adapter Scripts in Typescript?
- oder ...
Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
Muss ich den mit npm installieren?Das betrifft NUR die Adapterentwicklungsumgebung. Auf einem laufenden ioBroker System (Produktivsystem) ist adapter.dev NICHT zu instalieren.
-
@iob69 sagte in iobroker-typen einbinden für typescript:
@oliverio
danke für die Antwort. Bräuchte die Typen für Typescript. Da man dort Typisiert programmieren kann und dann gleich die Objekte mit der entsprechenden Struktur ansprechen kann, rsp. muss.
Ich stosse immer wieder auf dieses Problem, wenn ich iobroker-spezifische Typen ansprechen will.Wenn ich das Packet iobroker.adapter-dev hinzufügen würde, hätte ich dann die Typen in Script (Typescript)?
Muss ich den mit npm installieren?Wenns um den Javascript-Adapter geht die sind dort als
iobJS
enthalten. Damit kommst du an die für den Javascript-Adapter verfügbaren Types. -
@mcm1957
Ich dachte das sei klar geworden. Ich hab doch geschrieben, dass ich das für Typescript brauche.
Aber nochmals konkret: Ich schreibe im Javascript-Adapter in Typescript, aber ich schreibe keine Adapter. -
@ticaki
Danke, ich probier das mal aus. -
@iob69 sagte in iobroker-typen einbinden für typescript:
@mcm1957
Ich dachte das sei klar geworden. Ich hab doch geschrieben, dass ich das für Typescript brauche.Man schreibt auch - bzw. ich schreibe alle meine Adapter in Typescript. Daher war es dann nicht so klar wie du vielleicht dachtest
-
@ticaki
ja ok.
Aber spielt es denn eine Rolle, wofür ich das brauche?
Kann man mit dem Packet ipbroker.adapter-dev auf mehr iob - spezifische Typen zugreifen?
Edit:
ChatGPT schreibt zum Beispiel folgendes:"Der Fehler tritt auf, weil TypeScript die ioBroker-Namespace nicht finden kann. Das bedeutet, dass du entweder die Typdefinitionen für ioBroker nicht eingebunden hast oder dass sie im aktuellen Projekt nicht korrekt referenziert werden.
Um TypeScript korrekt mit ioBroker zu verwenden, müssen die entsprechenden Typdefinitionen für die ioBroker-Objekte eingebunden werden. In deinem Fall scheint es, als ob TypeScript keine Kenntnis über den ioBroker-Namespace hat."
Er schlägt mir dann vor:
- ioBroker-Typdefinitionen zu installieren:
npm install --save-dev @types/iobroker
- die tsconfig.json anpassen und sicherstellen, dass sie den typeRoots-Pfad enthält:
{ "compilerOptions": { "module": "commonjs", "target": "ES6", "typeRoots": [ "./node_modules/@types", "./node_modules" ], "types": ["iobroker"] }, "include": [ "src/**/*.ts" ] }
- In manchen Fällen die Typen explizit importieren. Versuche, am Anfang deiner TypeScript-Datei Folgendes hinzuzufügen:
/// <reference types="iobroker" />
-
@iob69
Bitte kein AI geplapper - in 50% der Fälle überzeugt sie dich davon das der Himmel grün und das gras blau ist (mit Quellen natürlich).Textbots brauchen immer jemanden mit Ahnung von der Materie der das Geplapper auf Sinnhaftigkeit überprüft.
Du bist im Javascript-Adapter und nicht nativ mit nodejs unterwegs, da kannste fast alles was die AI sagt vergessen. Hm das ist nicht ganz richtig. Bei Funktionen, Berechnungen usw. geht das. Aber sobald es um verwaltung, systemfunktionen, libs, deps geht, wird das nix.
EDIT: Nochmal klarer - Wenn dir eine AI vorschlägt auf Systemebene etwas zu tun um ein Problem innerhalb eines Javascript-Adapter Skripts zu beheben ist das mit 99,9% Wahrscheinlichkeit falsch und das du was wirklich kaputt machst ist wahrscheinlich.
Edit2: hab den AI-Rant entfernt - hat nix mit dem Thema zu tun
-
-
@ticaki @mcm1957
Das ist ja auch der Grund, weshalb ich hier nachfrage, bevor ich was kaputt mache.
Aber ich weiss jetzt noch immer nicht, was ich tun muss, um die iobroker-Spezifischen Typen einzubinden, um iob spezifische Objekte anzusprechen.
z.B. wenn ich auf ein vis-Element zugreifen will, oder wenn ich die Ordnerstruktur der iob-Objekte untersuchen will.
Ok, in iobJS scheinen schon viele Elemente vorhanden zu sein, aber ich denke das ist nicht alles? -
@iob69
Das sollte alles sein, das du verwenden kannst. Welche fehlen dir denn? -
@ticaki
Ok, ich versuchs mal mit damit. Muss das erst mal durchschauen.