Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript-Adapter 3.7.0 - Editor: andere Fehlerbehandlung und Programmier-Best-Practice

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JavaScript-Adapter 3.7.0 - Editor: andere Fehlerbehandlung und Programmier-Best-Practice

    This topic has been deleted. Only users with topic management privileges can see it.
    • Mic
      Mic Developer last edited by

      Hallo,

      der Editor, den wohl der Adapter 3.7.0 mitbringt, macht Spaß. Nun werden kontext-abhängig Vorschläge gemacht etc.

      Außerdem behandelt dieser nun Fehler anders (z.B. mit Kringel unter Fehlern, etc.) - insgesamt super für die Programmierung.

      Allerdings weichen nun die Hinweise ab, konkret fiel folgendes auf:

      1.) Dot Notation bei Arrays:

      var myArray = [];
      myArray.test = "1";
      myArray['test2'] = "1";
      
      

      Bei "myArray.test = "1";" wird nun "test" rot unterstrichen mit Hinweis "Property 'test' does not exist on type 'any[]'."

      Mit älterem Adapter wurde stattdessen "myArray['test2'] = "1";" bemängelt mit dem Hinweis, man solle die "Dot Notation" mit Punkt verwenden.

      Soll man nun die Skripts am besten umschreiben und wieder weg von der "Dot Notation" bei Arrays gehen und zur "Bracket Notation" wechseln?

      2.) Funktion, die kein 2. Argument bekommt:

      function machWas(strText, bWert) {
          log(strText);
      }
      machWas("Hallo");
      
      

      Wenn man die Funktion mit "machWas("Hallo");" aufruft, wird rot unterkringelt mit dem Hinweis, dass das 2. Argument fehlt. Das ist an für sich super, allerdings habe ich so mit optionalen Werten gearbeitet. Wie kann man denn hier ein 2. Argument als optional vergeben?

      In anderen Programmiersprachen kenne ich das z.B. so mit "opt" zur Angabe, dass der 2. Parameter optional ist:

      function machWas(strText, opt bWert) {
      

      Wie geht denn das in JavaScript?

      Danke.

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        Ein wenig Kontext: Der neue Editor nutzt unter der Haube Microsoft's TypeScript zur Typprüfung, was wohl aktuell eins der mächtigsten Tools hierfür ist. Meistens kann man hier davon ausgehen dass die bemängelten Fehler wirkliche Fehler sind. Du kannst sie zwar ignorieren (außer wenn du TypeScripts schreibst), aber es ist wahrscheinlich dass Probleme in der Laufzeit auftreten können

        @Mic:

        1.) Dot Notation bei Arrays:

        var myArray = [];
        myArray.test = "1";
        myArray['test2'] = "1";
        
        ```` `  
        

        Array haben eigentlich keine benannten Eigenschaften. Diese werden auch bei den üblichen Array-Methoden ignoriert:

        myArray.length; // ist 0!
        myArray.join(","); // ist "" (leer)
        myArray.pop(); // undefined
        
        

        Für das was du vorhast, sind Objekte gedacht.

        var myObj = {}; // geschweifte Klammern!
        myObj.test = "1"; // alles gut!
        myObj['test2'] = "1"; // auch ok, wenn auch nicht nötig.
        
        

        @Mic:

        2.) Funktion, die kein 2. Argument bekommt:

        function machWas(strText, bWert) {
            log(strText);
        }
        machWas("Hallo");
        
        ```` `  
        

        Hierfür sind JSDoc-Kommentare gedacht:

        `/**
         * @param {string} a
         * @param {string} [b]
         */
        
        // (oder kürzer, ohne Typanmerkung)
        
        /**
         * @param [b]
         */
        function foo(a, b) {
            return a + (b || "");
        }
        
        foo("1");`
        Im obigen Code werden a und b als strings definiert, b zusätzlich als optional mit dem Standardwert "". Der Editor scheint diese aber zu ignorieren - muss ich mal schauen, ob das Problem in einer aktuelleren Version behoben ist.[/b][/b]
        
        1 Reply Last reply Reply Quote 0
        • Mic
          Mic Developer last edited by

          Danke für Deine Info und Ausführungen, das hilft sehr!

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          769
          Online

          31.7k
          Users

          79.9k
          Topics

          1.3m
          Posts

          2
          3
          429
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo