typescript visual-studio-code

typescript - vscode importará la consola de importación=require(“consola”); automáticamente



visual-studio-code (6)

import console = require("console");

console. << escribo. y encima se importa automáticamente en VScode. ¿Alguien sabe como deshabilitar eso?

(Supongo que es una de mis extensiones. Probablemente Prettier).

Edición: solo ocurre en el entorno React Typescript. no en Typescript sin reaccionar.


Descargo de responsabilidad: esto no debe considerarse "la solución", pero es la más sencilla / rápida.

Esta respuesta asume que estás usando VSCode. Otros IDE deben ser similares.

  1. Empezar a escribir console
  2. Haga clic en Entrar o escriba . , permitiendo que IntelliSense agregue import console = require("console");
  3. Ctrl + clic (o F12, o Cmd + clic en macOS) en require("console")
  4. Comenta este código:

declare module "console" { export = console; }




Si te gusta, olvida "cl", puedes usar múltiples prefijos en los fragmentos de código :)

{ "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" } }


También experimenté esto y parece ser un problema con la función de importación automática en VSCode. Deshabilitar todas las extensiones tampoco parece hacer que desaparezca.

Como solución alternativa, puede desactivar las importaciones automáticas en la configuración.

Si usas Javascript

"javascript.suggest.autoImports": falso

Si usas Typescript

"typescript.suggest.autoImports": falso

EDITAR: La autoimportación defectuosa se produce debido a este código en un paquete en el árbol de dependencias

declare module "console" { export = console; }

El paquete se puede ubicar en su directorio local de node_modules o en un paquete referenciado instalado globalmente.

  1. Busque en sus node_modules locales el declare module "console"
  2. Si lo encuentra en un paquete local, ejecute npm list [packageName] para determinar qué paquete en package.json depende del paquete con el código de la consola.

Si no encuentra el código en sus módulos de nodo locales, podría:

  1. Eliminar paquetes uno por uno en package.json

  2. Busque el código de la consola en módulos instalados globalmente a los que los paquetes pueden hacer referencia en su proyecto

% USERPROFILE% / AppData / Roaming / npm / node_modules% USERPROFILE% / AppData / Local / Microsoft / TypeScript

Sé que no es una solución directa, pero espero que ayude, en mi caso recibí una referencia de react-native-copilot -> rimraf -> node que tenía el código de la consola. La eliminación de react-native-copilot resolvió el problema.


Una forma de evitar que esto suceda es modificar su archivo tsconfig.json para limitar el conjunto de tipos que se importan automáticamente en su proyecto.

Tuve este mismo problema, y ​​lo arreglé agregando:

types: []

en mi archivo tsconfig.json Lo que esto hace es deshabilitar el TypeScript (y por la extensión VSCode) de importar automáticamente todos los paquetes de nodos que están con @types/ en la configuración del proyecto. Esto no impide que TS importe esas definiciones de tipo si importa un paquete explícitamente usando esos tipos.

En mi caso específico, la definición de la console venía de @types/node , que se había importado en el proyecto como una dependencia de Storybook. Sin embargo, mi proyecto era un proyecto de paquete web, destinado a ejecutarse en un navegador, por lo que no tenía sentido importar tipos Node.js en mi código fuente. El conjunto básico de tipos que desearía usar en un navegador son tipos de dom, no tipos de nodo.

Dependiendo de su proyecto, es posible que tenga que agregar explícitamente el conjunto de paquetes de tipo base al parámetro de types: ["dom", "react"] ( types: ["dom", "react"] y así sucesivamente). Sin embargo, en mi caso esto resultó ser innecesario, mi proyecto fue capaz de compilar bien con una lista vacía. Y la tendencia de VSCode a importar automáticamente ''consola'' parece haber desaparecido por completo; No he notado ningún otro efecto adverso hasta ahora.

Más información sobre la configuración de tipos en tsconfig.json aquí: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html