Typescript: console.log importation automatique import console = require ('console');

Créé le 10 mars 2019  ·  42Commentaires  ·  Source: microsoft/TypeScript

Étapes à suivre pour reproduire:
tapez console. . 7 fois sur 10, vscode insérera import console=require('console'); dans le haut des importations du fichier conduisant à une erreur de compilation.

Le problème le plus ennuyeux du code vs de loin.


Ce problème se produit-il lorsque toutes les extensions sont désactivées?: Incertain

Bug Fixed VS Code Priority

Commentaire le plus utile

Ajoutez un fichier console.d.ts à votre racine src et ajoutez le contenu suivant:

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

Cela corrigera votre importation

Tous les 42 commentaires

Idem ici (Ubuntu 18.04). Il est venu avec la nouvelle mise à jour VSCode .. Très ennuyeux.

Semble être causé par la définition de type de node . Suppression:

declare module "console" {
    export = console;
}

dans ../node_modules/@types/node/index.d.ts semble être une solution temporaire jusqu'à ce que cette définition soit mise à jour. Ou cela pourrait être causé par un autre module de nœud installé qui déclare une définition de type pour console . Vous pouvez le comprendre en suivant le chemin vers où mène import console=require('console') . Crédit à ce stackoverflow .

Cela se reproduit-il dans la dernière version des initiés VS Code avec toutes les extensions désactivées? Assurez-vous que vous utilisez également la dernière version de TypeScript

Aussi @Zlass quelle version des types de nœuds utilisez-vous? Je ne vois pas cette déclaration dans le dernier @types/node et je n'ai pas été en mesure de reproduire ce problème

Ok, je crois avoir trouvé la cause. On dirait que c'est un bug lié à @types/styled-components ayant une dépendance sur @types/react-native , qui entre en conflit avec le type console du nœud.

J'ai pu le reproduire dans la version insider en créant une nouvelle application de réaction dactylographiée avec create-react-app et en installant @types/styled-components .

Je ne pense pas que ce soit un problème de code VS et il y a déjà un problème ouvert pour cela dans DefinitelyTyped ici

Hmmm, je n'utilise pas de composants stylisés. Pas impossible qu'il soit venu avec une autre bibliothèque

@mschipperheyn Je vous recommande de vérifier ce qui apparaît lorsque vous essayez de compléter automatiquement console . J'ai pu déterminer quel package déclarait une autre définition de console en jetant un œil aux références de chaque suggestion de saisie semi-automatique.

J'éprouve la même chose (sur la version 1.30.2). C'est un projet React Native, n'utilisant pas de composants stylisés (mais toute autre bibliothèque pourrait le faire). Lorsque vous tapez console ci-dessous se trouve la sortie respective de la complétion automatique. Le premier fait un auto import , le second fait un auto require .

Screen Shot 2019-03-20 at 17 47 43

Edit: On dirait que sur ma configuration, il pointe vers le ~/Library/Caches/typescript/3.2/node_modules/@types/node/index.d.ts suivant à la ligne 207

Ajoutez un fichier console.d.ts à votre racine src et ajoutez le contenu suivant:

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

Cela corrigera votre importation

Merci @BrendonSled pour ce correctif temporaire ... qui semble l'avoir résolu pour moi - maintenant pour l'ajouter à tous mes autres projets 🙈

Ce problème a été marqué comme «Externe» et n'a fait l'objet d'aucune activité récente. Il a été automatiquement fermé à des fins d'entretien ménager.

@BrendonSled merci !! Enfin une solution tmp

Quelqu'un at-il une mise à jour à ce sujet au-delà des solutions temporaires? Google ne renvoie que ce lien et le lien StackOverflow publié avant

@BrendonSled thx pour votre solution

Ça me rend fou...

Argh, c'est tellement ennuyeux!

Même problème ici. Je suis sous Linux Mint 19.1.

La seule façon de contourner cette fonctionnalité auto import est de:

Allez à File : arrow_forward: Preferences : arrow_forward: Settings : arrow_forward: Recherchez Javascript Auto Imports et / ou Typescript Auto Imports : arrow_forward: décochez Enable/disable auto imports suggestions .

OU

Allez à File : arrow_forward: Preferences : arrow_forward: User Snippets : arrow_forward: Sélectionnez global.code-snippets : arrow_forward: Enregistrez-le dans /vscode/snippets/global.code-snippets : arrow_forward : puis ajoutez et enregistrez cet extrait de code global (vous pouvez également créer un extrait de code spécifique à la langue si vous ne voulez pas qu'il soit global - cela fera de l'extrait de console sous la première entrée dans la liste des suggestions automatiques):

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

même problème ici visual studio 1.33.1 node 10
solution temporaire a fonctionné pour moi ...

C'est exaspérant. Ce serait formidable si nous pouvions mettre sur liste noire certaines importations automobiles.

C'est extrêmement ennuyeux. La solution de contournement publiée par @BrendonSled n'est pas valide selon stricte ts. Une autre façon de résoudre ce problème?

'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 donne quelques suggestions sur ce problème .

En particulier, cette suggestion et cette suggestion semblent avoir amélioré la situation pour moi.

@RyanCavanaugh Comment pouvons-nous améliorer l'expérience même s'il y a un d.ts incorrect dans un paquet?

Merci à

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

Cela m'a motivé 🙃 sur les projets React Native

Ce problème aurait dû être résolu. Si vous rencontrez toujours ce problème, veuillez

  1. assurez-vous que vous voyez toujours le comportement après l'installation de ce plugin
  2. fournir une reproduction minimale du problème.

@DanielRosenwasser
J'installe le plugin et j'ai perdu toute importation automatique.
Je veux l'importation automatique, mais je ne veux pas importer automatiquement la console.

D'accord, cela ressemble à un problème distinct que vous devez déposer sur https://github.com/Microsoft/TypeScript si vous pouvez fournir une reproduction minimale de ce problème.

@DanielRosenwasser Ce plugin l'a résolu pour moi. Je ne suis pas sûr de comprendre ce que cela fait. Est-ce une solution de contournement jusqu'à ce qu'une nouvelle version de VSCode soit expulsée, ou est-ce une solution plus permanente?

Cela signifie que le problème a déjà été résolu et le sera dans la prochaine version de VS Code.

ce n'est toujours pas corrigé dans la dernière version de vscode

Avons-nous une mise à jour récente pour ce problème? ce problème persiste également dans la dernière version de vscode pour moi.

Désolé mon mauvais. Ce sera dans la version du mois prochain. Les initiés et les utilisateurs de https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next auront le correctif disponible.

@DanielRosenwasser En êtes-vous sûr? J'ai installé JavaScript and TypeScript Nightly et je reçois toujours ce problème.

Je vois le problème avec VScode Insider (sans le plugin) et VSCode (avec le plugin installé). Ils semblent tous les deux utiliser 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

Insider VSCode

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

Cela pourrait-il être rouvert? Parce que ce n'est pas encore corrigé (même pas avec le plugin Typescript Nightly)

Salut à tous, est-ce que quelqu'un est capable de partager un repo réel qui a ce problème? Cela semble fou, mais je ne peux pas du tout reprocher. TypeScript a eu un traitement spécial pour exclure les importations automatiques pour les déclarations qui réexportent simplement un global pendant plus d'un an. Le fait que cela ne se produit pas pour vous tous signifie qu'il se passe quelque chose de très étrange, mais apparemment assez courant.

Ma meilleure hypothèse est qu'une combinaison de dépendances vous a donné deux versions différentes de @types/node simultanément, et d'une manière ou d'une autre, cela jette une clé dans le système. Je vais essayer d'inventer des scénarios comme celui-là, mais si quelqu'un peut fournir un environnement exact où cela se produit, cela accélérera certainement le correctif.


Mise à jour: j'ai trouvé une repro. Mépris.

On dirait que cela ne fera pas partie de la RC, mais devrait en faire la nuit et la version appropriée de la 3.6.

Je lance Mac et Ubuntu. Mac va bien, Ubuntu a ce problème.
Corrigé avec Nightly.

Pour quiconque dit que JavaScript et TypeScript Nightly ne fonctionnent pas, assurez-vous de le configurer correctement:

  1. Ouvrez un fichier JavaScript ou TypeScript dans VS Code.
  2. Dans la palette de commandes VS Code, exécutez la commande TypeScript: Select TypeScript version.
  3. Assurez-vous que la version Utiliser VS Code est sélectionnée

Je vivais heureusement sans ce problème jusqu'à ce que j'installe des composants stylisés et c'est à nouveau.

@tlaak quelle version de TypeScript utilisez-vous? Je suis sûr que j'ai corrigé cela dans la version 3.6 Bien sûr, les anciennes versions de TypeScript continueront à présenter ce comportement pour toujours.

@andrewbranch Je pense que j'utilisais l'ancienne version 3.5.x mise en place par create-react-app. Mais de toute façon, je n'ai plus accès au projet donc je ne peux pas confirmer.

@andrewbranch J'ai juste eu le plaisir de rencontrer ce problème très ennuyeux avec mon projet, et après la mise à niveau de TypeScript de 3.5.x à 3.6, je peux confirmer que c'est corrigé !! 🎉 Pour toute autre personne ayant ce problème: assurez-vous que la version de Typescript dans le coin inférieur droit de VS Code est également définie sur 3.6.x

la version 3.5.x est là, et sur 3.6.2, plus d'importation automatique de console.
Quel 3.6.2 est la version ts par défaut de vscode semble être.

image

assurez-vous que votre vscode est défini sur la valeur par défaut et non sur la version de l'espace de travail / projet ts
image

Vous pouvez le comprendre en suivant le chemin vers lequel mène l'importation console = require ('console'). Crédit à ce stackoverflow.

@Zlass c'est une bouée de sauvetage 🙏

Pour tous ceux qui ont encore des problèmes: vous pouvez suivre les étapes de stackoverflow

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

uber5001 picture uber5001  ·  3Commentaires

weswigham picture weswigham  ·  3Commentaires

Antony-Jones picture Antony-Jones  ·  3Commentaires

jbondc picture jbondc  ·  3Commentaires

kyasbal-1994 picture kyasbal-1994  ·  3Commentaires