É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
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
.
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
@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
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:
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.
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
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
Commentaire le plus utile
Ajoutez un fichier console.d.ts à votre racine src et ajoutez le contenu suivant:
Cela corrigera votre importation