Jshint: Objekt-„Spread“-Eigenschaften (Vorschlag Stufe 2) werden nicht unterstützt

Erstellt am 30. Juli 2016  ·  27Kommentare  ·  Quelle: jshint/jshint

Ich habe so etwas

  args: {
    ...connectionArgs,
  },

Und jshint beschwert sich darüber
xpected '}' to match '{' from line 167 and instead saw '...'.

Was sollte ich zu meiner .jshintrc -Datei hinzufügen, um das Zerstören zu ermöglichen?

Has PR P1 Proposal

Hilfreichster Kommentar

+1 für die Unterstützung. Es ist bereits weit verbreitet in React/Redux

Alle 27 Kommentare

JSHint unterstützt diese vorgeschlagene Sprachfunktion derzeit nicht. Es hat jedoch kürzlich "Stufe 2" im Standardisierungsprozess erreicht, daher sind wir daran interessiert, Unterstützung in einer zukünftigen Version hinzuzufügen.

Oh, danke @jugglinmike , hast du eine Idee, wie ich jshint dazu bringen kann, es zumindest zu ignorieren?

Sicher, Sie werden die Inline-Direktiven jshint ignore:start und jshint ignore:end verwenden wollen:

  args: {
+   // jshint ignore:start
    ...connectionArgs,
+   // jshint ignore:end
  },

Ich habe den Problemtitel aktualisiert, um die Funktionsanfrage genauer zu beschreiben.

Wäre großartig, JSHint-Unterstützung dafür zu haben, da es jetzt Stufe 3 ist

+1 für die Unterstützung. Es ist bereits weit verbreitet in React/Redux

+1. Arbeitet jemand daran?

+1, um dies zu erledigen. Danke Leute!

+1 würde sich sehr darüber freuen

+1

+1

Die Unterstützung für diese Sprachfunktion wurde mit dem v2.10.0 -Funktionszweig (über gh-3150) zusammengeführt, daher erwarten wir, dass sie in der nächsten Nebenversion von JSHint enthalten sein wird. Ich werde dieses Problem als "hat PR" kennzeichnen, um diesen Status besser zu kommunizieren.

Erst vor wenigen Tagen gaben sie bekannt:

Die Unterstützung für dieses Sprachfeature wurde mit dem v2.10.0-Feature-Zweig (über gh-3150) zusammengeführt, daher erwarten wir, dass es in der nächsten Nebenversion von JSHint enthalten sein wird. Ich werde dieses Problem als "hat PR" kennzeichnen, um diesen Status besser zu kommunizieren.

Aber so habe ich es behoben:

Fügen Sie sowohl esnext als auch esversion zu Ihrer .jshintrc -Datei hinzu:

...
"esnext": true,
"esversion": 6,
...

Hier ist meine vollständige .jshintrc -Datei:

{
    "mocha": true,
    "freeze": true,
    "bitwise": false,
    "browserify": true,
    "strict": true,
    "worker": true,
    "scripturl": true,
    "latedef": "nofunc",
    "onevar": true,
    "node": true,
    "maxstatements": 25,
    "futurehostile": true,
    "noarg": true,
    "unused": true,
    "esnext": true,
    "esversion": 6,
    "eqeqeq": true,
    "nocomma": false,
    "devel": true,
    "maxdepth": 6,
    "jquery": true,
    "browser": true,
    "debug": true,
    "maxparams": 5,
    "undef": true,
    "globalstrict": true,
    "maxcomplexity": 20,
    "typed": true,
    "nonew": true,
    "forin": false,
    "shadow": true,
    "-W018": false
}

+1 kann die Veröffentlichung von v2.10.0 kaum erwarten. Gut gemacht! Gibt es einen Zeitplan für v2.10.0?

Beim Ausführen von [email protected]

Wenn ich beides habe

{
  "esnext": true,
  "esversion": 6,
}

Ich bekomme folgenden Fehler:

Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

Dasselbe hier für: Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

Was ist der Zeitplan für 2.10.0 ?

Ich bekomme auch Incompatible values for the 'esversion' and 'esnext' linting options , selbst nachdem ich direkt vom v2.10.0 -Zweig auf GitHub installiert habe. Der Fehler verschwindet, wenn ich esversion ganz weglasse. Hier ist jetzt ein Ausschnitt aus meinem .jshintrc :

"esnext": true,
"unstable": {
  "objspreadrest": true
},

Die Idee hinter diesem Fehler ist wirklich „verwenden Sie nicht sowohl ‚esversion‘ als auch ‚esnext‘ (oder ‚es3‘ oder ‚es5‘), afaiu.

Der Text könnte klarer sein, aber das Ziel des Fehlers scheint zu sein, „Warnungen auszugeben, damit wir diese Optionen schließlich entfernen können und die Leute einfach ‚esversion‘ verwenden“.

@jugglinmike denkst du, wir sollten es stattdessen einfach zu einem nicht schwerwiegenden Fehler machen oder anderweitig eine explizite "Umkehrung" zulassen, um die Optionen der Legacy-Version zu überschreiben?

@chaddjohnson Dieser Zweig steht zur Verfügung, um die Transparenz zu fördern und die Zusammenarbeit zu ermöglichen. Sie können natürlich gerne jeden Code in diesem Projekt ausführen, aber bitte haben Sie Verständnis dafür, dass wir die Verwendung von unveröffentlichtem Code nicht unterstützen, da wir nicht über die Bandbreite verfügen, um dies zu unterstützen.

@caitp Ich würde es vorziehen, Mehrdeutigkeiten zu verbieten, anstatt zu versuchen, sie zu interpretieren. Ich werde in einer Antwort auf Ihre Pull-Anforderung weitere Einzelheiten mitteilen.

https://github.com/jshint/jshint/issues/2991#issuecomment -349636400

[jshint] Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned). (E059)

https://github.com/jshint/jshint/issues/2991#issuecomment -396695974

[jshint] Bad option: 'unstable'. (E001)

@jugglinmike Willst du damit sagen, dass es im Moment unmöglich ist, jshint zu verwenden?

Überhaupt nicht, @NatoBoram. Ich rate davon ab, unveröffentlichte Versionen des Projekts zu verwenden.

Hmmm, da jemand eine Lösung für das gefunden hat:

Inkompatible Werte für die Linting-Optionen „esversion“ und „esnext“. (0% gescannt). (E059)

irgendeine Auflösung davon? Wann wird jshint die NEUESTEN Syntaxen unterstützen?

Irgendein Wort dazu? Ich schätze dieses Tool sehr, aber es ist das Schlimmste, meine Skripte mit "ignorieren"-Kommentaren übersäten zu müssen.

Hätte jemand Zeit, sich das anzuschauen? Ich verwende 2.9.7, die neueste Version von jshint, im Atom-Editor, und mein React Native-App-Code ist mit Syntaxfehlern über den Spread-Operator in Objektliteralen übersät. Das Setzen von "esnext":true in .jshintrc hilft nicht. Das Tool verweigert die Arbeit, wenn sowohl "esnext":true als auch "esversion":6 gesetzt sind.

Wenn jemand eine Problemumgehung hat, die jetzt funktioniert, würdest du sie bitte posten?

Unterstützung für diese Funktion wird in JSHint Version 2.10.0 verfügbar sein, die wir voraussichtlich früh als nächstes veröffentlichen werdenWoche . Ich werde dieses Problem als "gelöst" markieren, sobald es veröffentlicht wurde.

Wir haben gerade die Unterstützung für Objekt rest/spread in JSHint Version 2.10.0 veröffentlicht .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

strugee picture strugee  ·  8Kommentare

MtDalPizzol picture MtDalPizzol  ·  7Kommentare

fbarda picture fbarda  ·  5Kommentare

Guichaguri picture Guichaguri  ·  8Kommentare

NemoStein picture NemoStein  ·  7Kommentare