Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Skripte in Typescript

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Skripte in Typescript

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
9 Beiträge 3 Kommentatoren 2.6k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Milraun
    schrieb am zuletzt editiert von
    #1

    Hi,
    ich würde gerne meine Skripte in Typescript schreiben. Das funktioniert für einzelne Skripte auch ganz gut. Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert. Ich bin bei der Suche nach einer Doku für Typescript leider nicht fündig geworden. Deshalb ein paar Fragen.

    • Wie muss ich meine Skripte organisieren?
    • Wie kann ich etwas aus anderen Skripten (global) importieren?
    • Kann ich mit async/await und Promises arbeiten?
    • Gibt es Beispiele?
    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • M Milraun

      Hi,
      ich würde gerne meine Skripte in Typescript schreiben. Das funktioniert für einzelne Skripte auch ganz gut. Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert. Ich bin bei der Suche nach einer Doku für Typescript leider nicht fündig geworden. Deshalb ein paar Fragen.

      • Wie muss ich meine Skripte organisieren?
      • Wie kann ich etwas aus anderen Skripten (global) importieren?
      • Kann ich mit async/await und Promises arbeiten?
      • Gibt es Beispiele?
      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      @Milraun sagte in Skripte in Typescript:

      Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert

      Beispiel?

      Wie muss ich meine Skripte organisieren?

      Nicht anders als JavaScript.

      Wie kann ich etwas aus anderen Skripten (global) importieren?

      Geht nicht. Du kannst globale Skripte im Ordner global ablegen. Diese werden aber einfach im Quelltext intern VOR die anderen Skripte gehängt, d.h. dort definierte Funktionen sind in allen anderen Skripten ebenfalls enthalten.

      Kann ich mit async/await und Promises arbeiten?

      Selbstverständlich. Glaube aktuell sind wir bei TypeScript 3.9, d.h. die ganzen neuen Syntax-Features sind unterstützt.

      Gibt es Beispiele?

      Nein, wofür brauchst du welche?

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      M 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        @Milraun sagte in Skripte in Typescript:

        Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert

        Beispiel?

        Wie muss ich meine Skripte organisieren?

        Nicht anders als JavaScript.

        Wie kann ich etwas aus anderen Skripten (global) importieren?

        Geht nicht. Du kannst globale Skripte im Ordner global ablegen. Diese werden aber einfach im Quelltext intern VOR die anderen Skripte gehängt, d.h. dort definierte Funktionen sind in allen anderen Skripten ebenfalls enthalten.

        Kann ich mit async/await und Promises arbeiten?

        Selbstverständlich. Glaube aktuell sind wir bei TypeScript 3.9, d.h. die ganzen neuen Syntax-Features sind unterstützt.

        Gibt es Beispiele?

        Nein, wofür brauchst du welche?

        M Offline
        M Offline
        Milraun
        schrieb am zuletzt editiert von
        #3

        @AlCalzone said in Skripte in Typescript:

        @Milraun sagte in Skripte in Typescript:

        Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert

        Beispiel?

        Ich habe zwei Skripte mit der Funktion init() in common. Bei einem bekomme ich:

        javascript.0 (17880) script.js.common.sonosRadio: TypeScript compilation failed: function init() : void { ^ ERROR: Duplicate function implementation.
        

        wenn ich die Funktion im zweiten Skript umbenenne kompiliert das Skript

        Wie muss ich meine Skripte organisieren?

        Nicht anders als JavaScript.

        Wie kann ich etwas aus anderen Skripten (global) importieren?

        Geht nicht. Du kannst globale Skripte im Ordner global ablegen. Diese werden aber einfach im Quelltext intern VOR die anderen Skripte gehängt, d.h. dort definierte Funktionen sind in allen anderen Skripten ebenfalls enthalten.

        Gut, in der Doku stand, dass man Funktionen mit "declare" deklarieren muss was in Typescript nicht geht. Wenn ich keinen import oder so machen kann habe ich im Editor immer Fehler. Das Skript kompiliert dann trotzdem

        Kann ich mit async/await und Promises arbeiten?

        Selbstverständlich. Glaube aktuell sind wir bei TypeScript 3.9, d.h. die ganzen neuen Syntax-Features sind unterstützt.

        Gibt es Beispiele?

        Nein, wofür brauchst du welche?

        Für Skripte in Typescript. Hab da bisher nicht viel gefunden.

        AlCalzoneA N 2 Antworten Letzte Antwort
        0
        • M Milraun

          @AlCalzone said in Skripte in Typescript:

          @Milraun sagte in Skripte in Typescript:

          Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert

          Beispiel?

          Ich habe zwei Skripte mit der Funktion init() in common. Bei einem bekomme ich:

          javascript.0 (17880) script.js.common.sonosRadio: TypeScript compilation failed: function init() : void { ^ ERROR: Duplicate function implementation.
          

          wenn ich die Funktion im zweiten Skript umbenenne kompiliert das Skript

          Wie muss ich meine Skripte organisieren?

          Nicht anders als JavaScript.

          Wie kann ich etwas aus anderen Skripten (global) importieren?

          Geht nicht. Du kannst globale Skripte im Ordner global ablegen. Diese werden aber einfach im Quelltext intern VOR die anderen Skripte gehängt, d.h. dort definierte Funktionen sind in allen anderen Skripten ebenfalls enthalten.

          Gut, in der Doku stand, dass man Funktionen mit "declare" deklarieren muss was in Typescript nicht geht. Wenn ich keinen import oder so machen kann habe ich im Editor immer Fehler. Das Skript kompiliert dann trotzdem

          Kann ich mit async/await und Promises arbeiten?

          Selbstverständlich. Glaube aktuell sind wir bei TypeScript 3.9, d.h. die ganzen neuen Syntax-Features sind unterstützt.

          Gibt es Beispiele?

          Nein, wofür brauchst du welche?

          Für Skripte in Typescript. Hab da bisher nicht viel gefunden.

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @Milraun sagte in Skripte in Typescript:

          Bei einem bekomme ich: Duplicate function implementation.

          Interessant... Das dürfte eigentlich nur sein, wenn du in einem global Skript die gleiche Funktion hast.

          Gut, in der Doku stand, dass man Funktionen mit "declare" deklarieren muss was in Typescript nicht geht.

          Doch, müsste gehen. Ich glaube aber das war, bevor für Funktionen in globalen Skripten automatisch Definitionen erzeugt und anderen Skripten bereit gestellt wurde.

          Für Skripte in Typescript. Hab da bisher nicht viel gefunden.

          Machen nicht viele. Hier wäre eins: https://forum.iobroker.net/topic/31211/vorlage-roborock-gen1-einzelraumreinigung-mit-valetudo

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          1 Antwort Letzte Antwort
          1
          • M Milraun

            @AlCalzone said in Skripte in Typescript:

            @Milraun sagte in Skripte in Typescript:

            Wenn ich jedoch mehrere habe werden gleiche Funktionen etc angemeckert

            Beispiel?

            Ich habe zwei Skripte mit der Funktion init() in common. Bei einem bekomme ich:

            javascript.0 (17880) script.js.common.sonosRadio: TypeScript compilation failed: function init() : void { ^ ERROR: Duplicate function implementation.
            

            wenn ich die Funktion im zweiten Skript umbenenne kompiliert das Skript

            Wie muss ich meine Skripte organisieren?

            Nicht anders als JavaScript.

            Wie kann ich etwas aus anderen Skripten (global) importieren?

            Geht nicht. Du kannst globale Skripte im Ordner global ablegen. Diese werden aber einfach im Quelltext intern VOR die anderen Skripte gehängt, d.h. dort definierte Funktionen sind in allen anderen Skripten ebenfalls enthalten.

            Gut, in der Doku stand, dass man Funktionen mit "declare" deklarieren muss was in Typescript nicht geht. Wenn ich keinen import oder so machen kann habe ich im Editor immer Fehler. Das Skript kompiliert dann trotzdem

            Kann ich mit async/await und Promises arbeiten?

            Selbstverständlich. Glaube aktuell sind wir bei TypeScript 3.9, d.h. die ganzen neuen Syntax-Features sind unterstützt.

            Gibt es Beispiele?

            Nein, wofür brauchst du welche?

            Für Skripte in Typescript. Hab da bisher nicht viel gefunden.

            N Offline
            N Offline
            noox
            schrieb am zuletzt editiert von noox
            #5

            Es ist echt schräg - scheinbar kollidieren Konstanten und Funktionsnamen zwischen verschiedene Typescript-Scripten.

            Ich hab mir jetzt mit

            namespace MyNamespaceName {
                // script code...
            }
            

            geholfen.

            Siehe: https://www.typescriptlang.org/docs/handbook/namespaces.html

            Wobei sich schon die Frage stellt, was im Hintergrund passiert, wenn die Bezeichner von völlig unterschiedlichen Scripten kollidieren.

            AlCalzoneA 2 Antworten Letzte Antwort
            0
            • N noox

              Es ist echt schräg - scheinbar kollidieren Konstanten und Funktionsnamen zwischen verschiedene Typescript-Scripten.

              Ich hab mir jetzt mit

              namespace MyNamespaceName {
                  // script code...
              }
              

              geholfen.

              Siehe: https://www.typescriptlang.org/docs/handbook/namespaces.html

              Wobei sich schon die Frage stellt, was im Hintergrund passiert, wenn die Bezeichner von völlig unterschiedlichen Scripten kollidieren.

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von AlCalzone
              #6

              @noox sagte in Skripte in Typescript:

              Bezeichner von völlig unterschiedlichen Scripten kollidieren

              Du verwendest nicht zufällig globale Skripte?

              Edit: nein, ich kanns auch bei normalen Skripten nachvollziehen.
              Habe Issue erstellt, schaue ich mir die Tage an, wenn ich dazu komme.
              https://github.com/ioBroker/ioBroker.javascript/issues/627

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              1
              • N noox

                Es ist echt schräg - scheinbar kollidieren Konstanten und Funktionsnamen zwischen verschiedene Typescript-Scripten.

                Ich hab mir jetzt mit

                namespace MyNamespaceName {
                    // script code...
                }
                

                geholfen.

                Siehe: https://www.typescriptlang.org/docs/handbook/namespaces.html

                Wobei sich schon die Frage stellt, was im Hintergrund passiert, wenn die Bezeichner von völlig unterschiedlichen Scripten kollidieren.

                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #7

                @noox Lass mich raten, du verwendest in den betroffenen Skripten kein import?

                In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module. Conversely, a file without any top-level import or export declarations is treated as a script whose contents are available in the global scope (and therefore to modules as well).

                Ein Workaround wäre, in den Dateien export {} zu ergänzen, dann verschwindet der Fehler. In einer kommenden Version wird der Adapter das auch selbst machen.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                N 1 Antwort Letzte Antwort
                0
                • AlCalzoneA AlCalzone

                  @noox Lass mich raten, du verwendest in den betroffenen Skripten kein import?

                  In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module. Conversely, a file without any top-level import or export declarations is treated as a script whose contents are available in the global scope (and therefore to modules as well).

                  Ein Workaround wäre, in den Dateien export {} zu ergänzen, dann verschwindet der Fehler. In einer kommenden Version wird der Adapter das auch selbst machen.

                  N Offline
                  N Offline
                  noox
                  schrieb am zuletzt editiert von
                  #8

                  @AlCalzone said in Skripte in Typescript:

                  @noox Lass mich raten, du verwendest in den betroffenen Skripten kein import?

                  Stimmt. Hab kein import verwendet. Mein letzte großes Angular/TypeScript-Projekt ist schon wieder 2 Jahre her und ich hab schon wieder viel zu viel vergessen :(

                  Würde das heißen, dass ich mit import und export Scripts wiederverwenden könnte? Ich habe doch immer wieder Code-Teile, die ich in ein paar Scripte gerne wiederverwenden möchte, aber für global einfach zu viel sind.

                  AlCalzoneA 1 Antwort Letzte Antwort
                  0
                  • N noox

                    @AlCalzone said in Skripte in Typescript:

                    @noox Lass mich raten, du verwendest in den betroffenen Skripten kein import?

                    Stimmt. Hab kein import verwendet. Mein letzte großes Angular/TypeScript-Projekt ist schon wieder 2 Jahre her und ich hab schon wieder viel zu viel vergessen :(

                    Würde das heißen, dass ich mit import und export Scripts wiederverwenden könnte? Ich habe doch immer wieder Code-Teile, die ich in ein paar Scripte gerne wiederverwenden möchte, aber für global einfach zu viel sind.

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    @noox sagte in Skripte in Typescript:

                    Würde das heißen, dass ich mit import und export Scripts wiederverwenden könnte?

                    Nein, du kannst nur node-Module per import einbinden. Skripte wiederverwenden (bzw. Skript-Module) erfordern ein Node.js-Feature was nur experimentell ist.
                    export in Skripten ist ohne Funktion (außer TypeScript zu überreden, dem Skript sein eigenes Scope zu geben).

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Antwort Letzte Antwort
                    1
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    597

                    Online

                    32.7k

                    Benutzer

                    82.4k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe