Die Syntax erfordert einen importierten Helfer namens __spreadArrays

Lesezeit: 3 Minuten

Benutzer-Avatar
Alex Wowtschuk

Wenn ich versuche, die Verbreitung in Typoskript zu verwenden, wie:

.reduce((unique, x) => {
    unique.some(element => element.machineName === x.machineName) ? unique : [...unique, x];
}

Warnung bekomme ich mit roter Markierung ab Visual Studio Code:

the syntax requires an imported helper named __spreadArrays

typescript version: "2.3.4"
target: "es5"

Ich denke, in späteren Versionen ist dieses Problem behoben, aber im Moment kann ich nicht migrieren. Wie kann ich es reparieren?

Notiz: Das Projekt wird gut kompiliert und funktioniert. Aber rot darunter VS Code dabei nervig.

  • Es sieht so aus, als ob VS Code auf es5 statt auf es6 eingestellt ist? Habe das noch nie gesehen, schau dir vielleicht diesen Thread an: stackoverflow.com/questions/29953293/…

    – beznet

    10. Oktober 2019 um 18:46 Uhr

In meinem Fall war es das Problem target: "es5" in compilerOptions bei tsconfig.json.

Also ändere ich es auf es6 damit es funktioniert, ohne Abhängigkeit hinzuzufügen.

  • Ich denke wirklich, dass dies eine zuordenbarere Antwort ist. tsLib wird selten direkt in Projekten installiert.

    – RazorHead

    7. Januar um 13:54 Uhr

Benutzer-Avatar
Jacob-Jan Mosselman

Schnelle Lösung, kurze Antwort

npm install tslib@latest --save


Aktualisieren

Ich habe dieses Problem erneut (jetzt mit tslib Version 2.2.0) nach dem Aktualisieren von VS Code, erneutes Aktualisieren hat das Problem behoben.

Original

Ich hatte dieses Problem mit tslib Version 1.14.1

npm update tslib --save hat nicht wirklich was gebracht

npm install tslib@latest --save hat den Job gemacht, es wurde auf Version 2.2.0 aktualisiert

  • Hatte das gleiche Problem mit 1.14.1. Ich weiß nicht, ob dies ein Problem mit dieser bestimmten Version ist (da _spreadArrays seit 1.10.0 vorhanden sein soll), aber die Installation von 2.2.0 scheint die Lösung zu sein

    – Jojofoulk

    19. Mai 2021 um 6:40 Uhr

  • das funktioniert bei mir.. ich musste meinen vscode neu starten..

    – Freudenlabor

    21. Januar um 6:05 Uhr

Benutzer-Avatar
Alex Wowtschuk

Zum VS Code Die Benachrichtigung basiert auf der tsLib Exporte. Eigentlich passiert nichts Schlimmes, ohne etwas zu tun, es ist nur ein Mangel an Tippen.

Lösung: Aktualisieren tsLib Abhängigkeit, um die Hervorhebung loszuwerden. In meinem Fall war es Version 1.9.0. Aktualisieren zu 1.10.0 hat das Problem gelöst.

__spreadArrays hinzugefügt wird 1.10.0 tsLib Ausführung:
https://github.com/microsoft/tslib/blob/1.10.0/tslib.es6.js

Aktualisieren: Da einige Zeit vergangen ist, ist es besser, die Version zu aktualisieren 2.2.0 (basierend auf den letzten Kommentaren) oder die latest.

  • Was bedeutet Update-tslib-Abhängigkeit? Fügen Sie es zu package.json, zu Entwicklungsabhängigkeiten oder zu devDependencies hinzu?

    – tkit

    13. März 2021 um 18:14 Uhr

  • npm install tslib --save hat die Arbeit für mich erledigt

    – Luuk

    16. März 2021 um 6:01 Uhr

Vorausgesetzt, Ihre tslib ist korrekt installiert und auf dem neuesten Stand, erhalten Sie möglicherweise immer noch diesen Fehler in VS Code, wenn der Editor eine andere Typescript-Version verwendet.

(entnommen aus zoks Antwort auf diese SO-Frage)

Öffnen Sie die Befehlspalette (Cmd+Shift+P auf dem Mac. Die fokussierte Datei muss .ts oder .tsx sein, sonst wird die Option zum Ändern der Version nicht angezeigt) Wählen Sie „TypeScript: Select TypeScript Version…“ aus. Es zeigt die TS-Version von VSCode und Arbeitsbereich (Projekt), wählen Sie den Arbeitsbereich aus

Dieser Fehler kann auftreten, wenn Sie in Ihrer tsconfig.json-Datei Folgendes haben:

{ 
  "importHelpers": true,
  "target": "es5"
}

Wenn Sie aus irgendeinem Grund nicht auf es6 upgraden können, wird der Fehler behoben, indem Sie importHelpers auf false setzen …

  • Ein Grund in meinem Fall ist, dass die von mir verwendete Drittanbieter-API Objekte ohne das Wort “neu” instanziiert.

    – Horiatu

    25. Februar um 15:12 Uhr

Benutzer-Avatar
Itay Tur

für Garnnutzer: yarn upgrade tslib@latest

  • Ein Grund in meinem Fall ist, dass die von mir verwendete Drittanbieter-API Objekte ohne das Wort “neu” instanziiert.

    – Horiatu

    25. Februar um 15:12 Uhr

Benutzer-Avatar
asifaftab87

Bewegen Sie den Mauszeiger von rechts nach unten auf die geschweiften Klammern neben TypeScript und klicken Sie dann auf Version. Es werden Ihnen einige Optionen angezeigt, die sich im Allgemeinen auf das Projekt beziehen. Wählen Sie einfach die Version aus, und es wird gut funktionieren

1064660cookie-checkDie Syntax erfordert einen importierten Helfer namens __spreadArrays

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

Privacy policy