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.
- Empieza a escribir
console - Haz clic en Enter o escribe
., permitiendo que IntelliSense agregueimport console=require("console"); - Ctrl+clic (o F12, o Cmd+clic en macOS) en
require("console") - 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.
- Busca en tus node_modules locales
declare module "console" - 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
Elimina los paquetes uno por uno en package.json
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"
}
}
