import console = require("console");
console.
<< Je tape. et ci-dessus est importé automatiquement dans VScode. Quelqu'un sait comment désactiver ça?
(Je suppose que c'est l'une de mes extensions. Probablement plus jolie.)
edit: cela ne se produit que dans l'environnement React TypeScript. pas dans TypeScript sans réagir.
Avertissement: ceci ne devrait pas être considéré comme "la solution" mais c'est le plus simple/le plus rapide.
Cette réponse suppose que vous utilisez VSCode. Les autres IDE devraient être similaires.
console
.
, permettant IntelliSense d'ajouter import console = require("console");
require("console")
declare module "console" {
export = console;
}
J'ai également rencontré un problème avec la fonctionnalité d'importation automatique dans VSCode. Désactiver toutes les extensions ne semble pas le faire disparaître non plus.
Pour contourner le problème, vous pouvez désactiver les autoimports dans les paramètres.
Si vous utilisez Javascript
"javascript.suggest.autoImports": false
Si vous utilisez TypeScript
"TypeScript.suggest.autoImports": false
EDIT: L’autoimport défectueux se produit à cause de ce code dans un paquet dans l’arbre de dépendance
declare module "console" {
export = console;
}
Le package peut être situé dans votre répertoire local node_modules ou dans un package référencé installé globalement.
declare module "console"
npm list [packageName]
pour déterminer le package de package.json qui dépend du package contenant le code de console.Si vous ne trouvez pas de code dans votre node_modules local, vous pouvez soit
Éliminer les paquets un par un dans package.json
Recherchez le code de la console dans les modules installés globalement qui peuvent être référencés par les packages de votre projet.
% USERPROFILE%\AppData\Roaming\npm\node_modules% USERPROFILE%\AppData\Local\Microsoft\TypeScript
Je sais que ce n’est pas une solution simple, mais j’espère que cela l’aidera. Dans mon cas, j’avais une référence de react-native-copilot -> rimraf -> node qui contenait le code de la console. La suppression de react-native-copilot a résolu le problème.
Si vous ajoutez un extrait pour insérer console.log
et que vous l'utilisez à la place, il n'y aura pas d'importation automatique de "console".
https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets
voici mon extrait:
{
"Print to console": {
"prefix": "cl",
"body": [
"console.log('$1');",
],
"description": "Log output to console"
}
}
La solution la plus élégante que j'ai trouvée consiste à créer un fichier factice console.d.ts
quelque part dans votre projet:
declare module 'console' {
export = typeof import("console");
}
Cela empêchera l’importation automatique.
Crédits: https://github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436
Si vous m'aimez oubliez "cl", vous pouvez utiliser plusieurs préfixes dans les extraits :)
{
"Print to console": {
"prefix": ["cl","co","con","cons","conso","consol","console", "console.l","console.lo","console.log"],
"body": [
"console.log($1);",
],
"description": "Log output to console"
}
}
Une façon d'éviter cela consiste à modifier votre fichier tsconfig.json pour limiter l'ensemble des types importés automatiquement dans votre projet.
J'ai eu le même problème et je l'ai corrigé en ajoutant:
_types: []
_
dans mon fichier tsconfig.json. Cela désactive TypScript (et par extension VSCode) de manière à importer automatiquement tous les packages de nœud dotés de _@types/
_ dans la configuration du projet. Cela n'empêche pas TS d'importer ces définitions de type si vous importez explicitement un package utilisant ces types.
Dans mon cas spécifique, la définition de console
provenait de _@types/node
_, qui avait été importé dans le projet en tant que dépendance de Storybook. Cependant, mon projet étant un projet Webpack, destiné à être exécuté dans un navigateur, importer des types Node.js dans mon code source n'avait donc aucun sens. Les types de base que vous souhaitez utiliser dans un navigateur sont des types dom et non des types de nœud.
Selon votre projet, vous devrez peut-être explicitement ajouter l'ensemble des packages de types de base dans le paramètre types (_types: ["dom", "react"]
_ et ainsi de suite). Cependant, dans mon cas, cela s'est avéré inutile, mon projet a été capable de compiler parfaitement avec une liste vide. Et la tendance de VSCode à importer automatiquement "console" semble avoir complètement disparu; Je n'ai pas remarqué d'autres effets pervers jusqu'à présent.
Plus d'informations sur les types de paramètres dans tsconfig.json ici: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html