Nachgestelltes Komma nach der letzten Zeile im Objekt

Lesezeit: 4 Minuten

Benutzeravatar von SiiilverSurfer
SiiilverSurfer

Ich verwende Prettier in VS Code. Mir ist aufgefallen, dass Prettier bei Verwendung des Formats beim Speichern jedes Mal nachgestellte Kommas in die letzte Zeile eines Objekts einfügt.

Nehmen wir zum Beispiel an, ich hätte ein JS-Objekt wie dieses:

obj = {
 hello: 'hello',
 world: 'world'
}

Prettier macht daraus Folgendes:

obj = {
 hello: 'hello',
 world: 'world',
}

Beachten Sie das zusätzliche Komma danach 'world'

Ich habe in den Einstellungen keine Option gefunden, um dieses Problem zu beheben.

  • Ich habe keine Ahnung von Prettier, aber hängt das nicht damit zusammen? prettier.io/docs/en/options.html#trailing-commas

    – ASDFGerte

    22. April 2020 um 16:53 Uhr

  • Für mich ist das Verhalten von Prettier entgegengesetzt, es entfernt nachgestellte Kommas.

    – Shub

    22. April 2020 um 16:55 Uhr

  • Du kannst es versuchen "trailingComma": "all" dann oder prüfen Sie, ob Sie auch eslint sind. Das könnte eine Einstellung außer Kraft setzen.

    – Zuckerberg

    22. April 2020 um 16:56 Uhr


Sie können aktualisieren .prettierrc.json und Option festlegen trailingComma Zu none wie:

{
  "trailingComma" : "none",
  ...
}

gschenks Benutzeravatar
gschenk

Nachgestellte Kommas sind eine Konvention im Codestil, die eingeführt wurde, um falsche Unterschiede in der Versionskontrolle (z. B. Git) zu vermeiden.

Stellen Sie sich vor, Sie haben versionierten Code und müssen ihn ändern. Wenn Sie Ihrem Objekt eine neue Zeile ohne das abschließende Komma hinzufügen, müssen Sie die ursprüngliche letzte Zeile durch Hinzufügen eines Kommas ändern. In der Versionskontrolle wird dies dann als zwei geänderte Zeilen angezeigt. Der Codeprüfer oder ein zukünftiger Entwickler muss prüfen, ob Sie die letzte Zeile tatsächlich geändert oder nur das Komma hinzugefügt haben.

Zuckerbergs Antwort zeigt Ihnen, wie Sie es ändern können. Es ist jedoch besser, Ihren Stil zu ändern, als sich zu ändern hübscher‘s Stil.

  • Lösung: Wenden Sie die Änderung auf Ihre gesamte Codebasis an, schreiben Sie sie fest und fügen Sie das Commit hinzu .git-blame-ignore-revs es taucht also nicht als Schuld auf – siehe z. B akrabat.com/ignoring-revisions-with-git-blame

    – Gimboland

    1. Juni 2021 um 15:13

  • Aber der Commit, der ein neues Element hinzufügt, sollte nicht ignoriert werden!

    – Merwok

    12. März um 19:22

  • Das ist ein toller Punkt. Ich bin der festen Überzeugung, dass das letzte Element im Änderungsverlauf enthalten sein sollte, wenn die Änderung nichts damit zu tun hat. Sehr zu empfehlen trailingComma: "es5" ( Die Standardeinstellung wurde von geändert none Zu es5 aus v2.0.0 )

    – Anjan Talatam

    15. April um 2:58

Benutzer-Avatar von David Federspiel
David Federspiel

Nachfolgende Kommas sind bereits ein Standard, da sie zu einem saubereren Commit-Verlauf führen. Wenn Sie später eine Eigenschaft hinzufügen müssen, zeigt Git eine einzelne geänderte Zeile anstelle einer neuen Zeile UND das neue Komma in der vorherigen Zeile an.

Um die Einstellung zu ändern VSCode:

  1. Gehen Sie zu DATEI -> EINSTELLUNGEN -> EINSTELLUNGEN. (VS-Code-Menüs)
  2. Das Einstellungsfenster sollte sich öffnen. Oben (oben) gibt es eine Suche. Typ „Hübscher“
  3. Sie sollten die verfügbaren Prettier-Einstellungen sehen. Sie können sie ändern

Jetzt ändern trailingComma Zu none

Nachgestellte Kommas sind modernes JS, aber wenn Sie sie wirklich nicht mögen Sie können deaktiviert werden.

  • Könnten Sie eine Quelle oder einen Artikel zum Thema „nachgestelltes Komma – modernes js“ hinzufügen?

    – Yevhenii Herasymchuk

    21. Okt. 2020 um 10:31 Uhr

  • @YevheniiHerasymchuk Es ist nicht nur JS. Es ist zum Beispiel auch PHP. Nachgestellte Kommas vermeiden Konflikte, wenn zwei Personen Elemente zu einem Array/Objekt hinzufügen und diese dann mit Git zusammenführen möchten. Mit einem abschließenden Komma erhalten Sie statt einer geänderten Zeile + eingefügter Zeile nur eine eingefügte Zeile, die keine Konflikte erzeugt.

    – Mārtiņš Briedis

    27. April 2022 um 9:23 Uhr

Benutzeravatar von Roma N
Roma N

In meinem Fall reichte die obige Konfiguration nicht aus:

{
  "trailingComma" : "none",
}

Damit dies bei mir funktionierte, musste ich zusätzlich zu dieser Einstellung auch die Einstellung entfernen Einstellung.json:

"[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},

Und mit der bereits installierten Erweiterung Prettier Geben Sie als Nächstes den Befehl ein
ctrl + shift + P In vscode

Klicke auf Configure...

Wählen Prettier - Code formatter

Jetzt das:

const a = {
  a: 10,
  b: 15,
};

wird daraus:

const a = {
  a: 10,
  b: 15
}

  • Könnten Sie eine Quelle oder einen Artikel zum Thema „nachgestelltes Komma – modernes js“ hinzufügen?

    – Yevhenii Herasymchuk

    21. Okt. 2020 um 10:31 Uhr

  • @YevheniiHerasymchuk Es ist nicht nur JS. Es ist zum Beispiel auch PHP. Nachgestellte Kommas vermeiden Konflikte, wenn zwei Personen Elemente zu einem Array/Objekt hinzufügen und diese dann mit Git zusammenführen möchten. Mit einem abschließenden Komma erhalten Sie statt einer geänderten Zeile + eingefügter Zeile nur eine eingefügte Zeile, die keine Konflikte erzeugt.

    – Mārtiņš Briedis

    27. April 2022 um 9:23 Uhr

Niccolò Mineos Benutzeravatar
Niccolò Mineo

Falls sich jemand fragt, wie man VSCodes bekommt prettier Erweiterung verhält sich wie pre-commit‘S prettier Hook, das hat bei mir funktioniert:

  "prettier.trailingComma": "all"

Das oben Genannte sollte in Kombination mit verwendet werden prettier als diedefaultFormatter für die relevanten Dateien, wie von anderen vorgeschlagen.

Wenn das allein nicht ausreicht und Sie auch verwenden EditorConfig Für andere Anpassungen müssen Sie möglicherweise auch Folgendes hinzufügen:

  "prettier.useEditorConfig": false

1452570cookie-checkNachgestelltes Komma nach der letzten Zeile im Objekt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy