Typescript: console.log importiert automatisch import console = require ('console');

Erstellt am 10. März 2019  ·  42Kommentare  ·  Quelle: microsoft/TypeScript

Schritte zum Reproduzieren:
Geben Sie console. . 7 mal von 10 fügt vscode import console=require('console'); in den Import oben in der Datei ein, was zu einem Kompilierungsfehler führt.

Die mit Abstand nervigste Ausgabe von vs Code.


Tritt dieses Problem auf, wenn alle Erweiterungen deaktiviert sind?: Nicht sicher

Bug Fixed VS Code Priority

Hilfreichster Kommentar

Fügen Sie Ihrem src-Stammverzeichnis eine

declare module 'console' {
    export = typeof import("console");
}

Das wird Ihren Import reparieren

Alle 42 Kommentare

Gleiches hier (Ubuntu 18.04). Es kam mit dem neuen VSCode-Update. Sehr ärgerlich.

Scheint durch die Typdefinition von node verursacht zu werden. Entfernen:

declare module "console" {
    export = console;
}

in ../node_modules/@types/node/index.d.ts scheint eine vorübergehende Korrektur zu sein, bis diese Definition aktualisiert wird. Oder es könnte durch ein anderes installiertes Knotenmodul verursacht werden, das eine Typdefinition für console deklariert. Sie können es herausfinden, indem Sie dem Pfad folgen, zu dem import console=require('console') führt. Gutschrift für diesen Stapelüberlauf .

Wird dies in den neuesten VS Code-Insider- Builds reproduziert

Auch @Zlass welche Version der Knotentypisierungen verwenden Sie? Ich sehe diese Erklärung nicht in den letzten @types/node und konnte dieses Problem nicht wiederholen

Ok, ich glaube ich habe die Ursache gefunden. Es scheint, als ob es sich um einen Fehler handelt, der mit @types/styled-components und von @types/react-native abhängt, was mit dem Typ console des Knotens in Konflikt steht.

Ich konnte es im Insider-Build reproduzieren, indem ich eine neue Typoskript-Reaktions-App mit create-react-app und @types/styled-components installierte.

Ich glaube nicht , das ein VS - Code Problem ist , und es gibt bereits eine offene Frage für sie in DefinitelyTyped hier

Hmmm, ich verwende keine gestylten Komponenten. Nicht unmöglich, dass es zusammen mit einer anderen Bibliothek kam

@mschipperheyn Ich würde empfehlen, zu überprüfen, was console automatisch zu vervollständigen. Ich konnte herausfinden, welches Paket eine andere Definition von console deklarierte, indem ich mir die Referenzen der einzelnen Vorschläge zur automatischen Vervollständigung ansah.

Ich erlebe das gleiche (auf Version 1.30.2). Es ist ein React Native-Projekt, bei dem keine gestalteten Komponenten verwendet werden (aber möglicherweise keine andere Bibliothek). Wenn Sie console unten eingeben, wird die entsprechende Ausgabe von Auto-Vervollständigung angezeigt. Der erste macht ein Auto import , der zweite macht ein Auto require .

Screen Shot 2019-03-20 at 17 47 43

Bearbeiten: Scheint in meinem Setup auf die folgenden ~/Library/Caches/typescript/3.2/node_modules/@types/node/index.d.ts in Zeile 207 zu verweisen

Fügen Sie Ihrem src-Stammverzeichnis eine

declare module 'console' {
    export = typeof import("console");
}

Das wird Ihren Import reparieren

Vielen Dank an @BrendonSled für dieses

Dieses Problem wurde als "Extern" markiert und hat in letzter Zeit keine Aktivitäten erfahren. Es wurde automatisch für Haushaltszwecke geschlossen.

@BrendonSled danke !! Endlich eine tmp Lösung

Hat jemand ein Update dazu, das über temporäre Lösungen hinausgeht? Google gibt nur diesen Link und den zuvor veröffentlichten StackOverflow-Link zurück

@BrendonSled Danke für Ihre Lösung

Das macht mich verrückt...

Argh, das ist so nervig!

Selbes Problem hier. Ich bin auf Linux Mint 19.1.

Die einzige Möglichkeit, diese auto import -Funktion zu umgehen, besteht darin, entweder:

Gehen Sie zu File : arrow_forward: Preferences : arrow_forward: Settings : arrow_forward: Suchen Sie nach Javascript Auto Imports und / oder Typescript Auto Imports : arrow_forward: Deaktivieren Sie Enable/disable auto imports suggestions .

ODER

Gehen Sie zu File : arrow_forward: Preferences : arrow_forward: User Snippets : arrow_forward: Wählen Sie global.code-snippets : arrow_forward: Speichern Sie es unter /vscode/snippets/global.code-snippets : arrow_forward : Fügen Sie dann dieses globale Snippet hinzu und speichern Sie es (alternativ können Sie ein sprachspezifisches Snippet erstellen, wenn Sie nicht möchten, dass es global ist. Dadurch wird das Konsolen-Snippet unter dem ersten Eintrag in der Liste der automatischen Vorschläge angezeigt):

{
  "Print to console": {
    prefix: ["console", "console.", "console.l", "console.lo", "console.log"],
    body: ["console.log($1);"],
    description: "Log output to console"
  }
};

gleiches Problem hier Visual Studio 1.33.1 Knoten 10
temporäre Lösung hat bei mir funktioniert ...

Das ist ärgerlich. Wäre toll, wenn wir bestimmte Autoimporte auf die schwarze Liste setzen könnten.

Das ist äußerst ärgerlich. Die von @BrendonSled veröffentlichte Bestimmungen ungültig. Gibt es eine andere Möglichkeit, dies zu beheben?

'export=' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.   ts(7022)

@ AndrewMorsillo geben Sie einige Vorschläge zu diesem Thema einen Versuch.

Insbesondere scheinen sowohl dieser Vorschlag als auch dieser Vorschlag die Situation für mich verbessert zu haben.

@ RyanCavanaugh Wie können wir die Erfahrung verbessern, selbst wenn ein Paket falsche d.ts enthält?

Dank an

{
    "Print to console": {
      "prefix": ["console", "console.", "console.l", "console.lo", "console.log"],
      "body": ["console.log($1);"],
      "description": "Log output to console"
    }
}

Dies hat mich bei React Native-Projekten angetrieben

Dieses Problem sollte behoben sein. Wenn Sie immer noch darauf stoßen, bitte

  1. Stellen Sie sicher, dass das Verhalten nach der Installation dieses Plugins weiterhin angezeigt wird
  2. bieten eine minimale Reproduktion des Problems.

@ DanielRosenwasser
Ich installiere das Plugin und habe dann den automatischen Import verloren.
Ich möchte den automatischen Import, möchte aber die Konsole nicht automatisch importieren.

Okay, das klingt nach einem separaten Problem, das Sie unter https://github.com/Microsoft/TypeScript einreichen sollten, wenn Sie eine minimale Reproduktion dieses Problems bereitstellen können.

@ DanielRosenwasser Das Plugin hat es für mich gelöst. Ich bin mir nicht ganz sicher, was das bedeutet. Ist das eine Problemumgehung, bis eine neue Version von VSCode veröffentlicht wird, oder ist das eine dauerhaftere Lösung?

Dies bedeutet, dass das Problem bereits behoben wurde und in der nächsten Version von VS Code behoben wird.

Dies ist in der neuesten Version von vscode immer noch nicht behoben

Haben wir ein aktuelles Update für dieses Problem? Dieses Problem besteht auch für mich in der neuesten Version von vscode weiterhin.

Es tut mir leid. Es wird im nächsten Monat veröffentlicht. Insider und Benutzer von https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next verfügen über das Update.

@ DanielRosenwasser Bist du dir da sicher? Ich habe JavaScript and TypeScript Nightly installiert und bekomme immer noch dieses Problem.

Ich sehe das Problem sowohl mit VScode Insider (ohne Plugin) als auch mit VSCode (mit installiertem Plugin). Beide scheinen TS 3.6.0-dev.20190810

VSCode

Version: 1.37.0
Commit: 036a6b1d3ac84e5ca96a17a44e63a87971f8fcc8
Date: 2019-08-08T01:22:37.660Z
Electron: 4.2.7
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Darwin x64 18.7.0

VSCode Insider

Version: 1.38.0-insider
Commit: ffa22b268f451b5211abbe2d2a47e6b753b55b1a
Date: 2019-08-13T07:23:55.783Z
Electron: 4.2.9
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Darwin x64 18.7.0

Screenshot 2019-08-13 at 17 08 37

Könnte dies bitte wieder geöffnet werden? Weil es noch nicht behoben ist (nicht einmal mit dem Typescript Nightly Plugin)

Hallo zusammen, kann jemand ein aktuelles Repo mit diesem Problem teilen? Es klingt verrückt, aber ich kann überhaupt nicht tadeln. TypeScript hat eine spezielle Behandlung zum Ausschließen von Autoimporten für Deklarationen, die eine globale Version über ein Jahr lang erneut exportieren. Die Tatsache, dass dies nicht für Sie alle geschieht, bedeutet etwas sehr Seltsames, aber anscheinend ziemlich häufiges.

Meine beste Vermutung ist, dass eine Kombination von Abhängigkeiten Ihnen zwei verschiedene Versionen von @types/node gleichzeitig gegeben hat, und irgendwie wirft das einen Schraubenschlüssel in das System. Ich werde versuchen, solche Szenarien zu erfinden, aber wenn jemand eine genaue Umgebung bereitstellen kann, in der dies geschieht, wird dies die Korrektur definitiv beschleunigen.


Update: einen Repro herausgefunden. Außer Acht lassen.

Sieht so aus, als würde dies nicht in den RC gelangen, sollte es aber in die nächtliche und ordnungsgemäße Veröffentlichung von 3.6 schaffen.

Ich verwende Mac und Ubuntu. Mac ist in Ordnung, Ubuntu hat dieses Problem.
Mit Nightly behoben.

Wenn Sie sagen, dass JavaScript und TypeScript Nightly nicht funktionieren, stellen Sie sicher, dass Sie es richtig konfigurieren:

  1. Öffnen Sie eine JavaScript- oder TypeScript-Datei in VS Code.
  2. Führen Sie in der Befehlspalette VS-Code den Befehl TypeScript: TypeScript-Version auswählen aus.
  3. Stellen Sie sicher, dass Sie die Version von VS Code verwenden ausgewählt haben

Ich habe glücklich ohne dieses Problem gelebt, bis ich gestaltete Komponenten installiert habe und da ist es wieder.

@tlaak Welche Version von TypeScript verwenden Sie? Ich bin mir ziemlich sicher, dass ich das in 3.6 behoben habe. Natürlich werden ältere Versionen von TypeScript dieses Verhalten für immer aufweisen.

@andrewbranch Ich glaube, ich habe die ältere Version

@andrewbranch Ich hatte gerade das Vergnügen, auf dieses sehr ärgerliche Problem mit meinem Projekt zu

Die Version 3.5.x ist vorhanden und unter 3.6.2 kein automatischer Konsolenimport mehr.
Wie 3.6.2 die vscode Standardversion ist ts scheint.

image

Stellen Sie sicher, dass Ihr vscode auf den Standardwert und nicht auf die Arbeitsbereichs- / Projektversion eingestellt ist
image

Sie können es herausfinden, indem Sie dem Pfad folgen, zu dem der Import von console = require ('console') führt. Gutschrift für diesen Stapelüberlauf.

@Zlass das ist ein Lebensretter 🙏

Für alle, die noch Probleme haben: Sie können die Schritte zum Stackoverflow ausführen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

siddjain picture siddjain  ·  3Kommentare

MartynasZilinskas picture MartynasZilinskas  ·  3Kommentare

bgrieder picture bgrieder  ·  3Kommentare

DanielRosenwasser picture DanielRosenwasser  ·  3Kommentare

blendsdk picture blendsdk  ·  3Kommentare