NEWS
JavaScript-Adapter 3.7.0 - Editor: andere Fehlerbehandlung und Programmier-Best-Practice
-
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.
-
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(); // undefinedFü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]
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