Búsqueda de sitios web

typescript - vscode importa import console=require("console"); automáticamente


import console = require("console");

console. << Escribo . y lo anterior se importa automáticamente en VScode. ¿Alguien sabe cómo desactivar eso?

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

editar: solo sucede en el entorno de React con Typescript. no en Typescript sin react.

Respuesta #1

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

Esta respuesta asume que estás usando VSCode. Otros IDE deberían ser similares.

  1. Empieza a escribir console
  2. Haz clic en Enter o escribe ., 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;
}

Respuesta #2

Yo también experimenté esto y parece ser un problema con la función de Auto Import en VSCode. Desactivar todas las extensiones tampoco parece hacer que desaparezca.

Como solución temporal, puedes desactivar las importaciones automáticas en la configuración.

Si usas Javascript

"javascript.suggest.autoImports": false

Si usas Typescript

"typescript.suggest.autoImports": false

EDITAR: La importación automática defectuosa ocurre debido a este código en un paquete más abajo en el árbol de dependencias

declare module "console" {
    export = console;
}

El paquete puede encontrarse ya sea en su directorio local de node_modules o en un paquete referenciado instalado globalmente.

  1. Busca en tus node_modules locales declare module "console"
  2. Si lo encuentras en un paquete local, ejecuta npm list [packageName] para determinar qué paquete en package.json depende del paquete que contiene el código de consola.

Si no encuentras el código en tus node_modules locales, podrías

  1. Elimina los paquetes uno por uno en package.json

  2. Busca el código de la consola en los módulos instalados globalmente que puedan ser referenciados por los paquetes en tu 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, tenía una referencia de react-native-copilot -> rimraf -> node que tenía el código de la consola en él. Eliminar react-native-copilot resolvió el problema.

Respuesta #3

La solución más elegante que encontré es crear un archivo ficticio console.d.ts en algún lugar de tu proyecto:

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

Esto evitará la importación automática.

Créditos: https://github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436

Respuesta #4

Si agregas un fragmento para insertar console.log y usas eso en su lugar, no habrá autoimportación de "console"

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets

aquí está mi fragmento:

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

Respuesta #5

Si me olvido de "cl", puedes usar varios prefijos en fragmentos:)

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

Artículos relacionados