Typescript: console.log importaciones automáticas import console = require ('consola');

Creado en 10 mar. 2019  ·  42Comentarios  ·  Fuente: microsoft/TypeScript

Pasos para reproducir:
escriba console. . 7 de cada 10 veces, vscode insertará import console=require('console'); en la parte superior de importaciones del archivo, lo que generará un error de compilación.

El problema más molesto de vs code con diferencia.


¿Ocurre este problema cuando todas las extensiones están deshabilitadas ?: No estoy seguro

Bug Fixed VS Code Priority

Comentario más útil

Agregue un archivo console.d.ts a su raíz src y agregue el siguiente contenido:

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

Eso arreglará tu importación

Todos 42 comentarios

Lo mismo aquí (Ubuntu 18.04). Viene con la nueva actualización de VSCode .. Muy molesto.

Parece ser causado por la definición de tipo de node . Eliminando:

declare module "console" {
    export = console;
}

en ../node_modules/@types/node/index.d.ts parece ser una solución temporal hasta que se actualice esa definición. O podría ser causado por otro módulo de nodo instalado que declara una definición de tipo para console . Puede averiguarlo siguiendo la ruta a donde lleva import console=require('console') . Crédito a este stackoverflow .

¿Se reproduce esto en la última compilación interna de VS Code con todas las extensiones deshabilitadas? Asegúrese de que también está utilizando la última versión de TypeScript

También @Zlass, ¿ qué versión de los tipos de nodos estás usando? No veo esa declaración en el último @types/node y no he podido reproducir este problema

Ok, creo que encontré la causa. Parece que es un error relacionado con @types/styled-components que depende de @types/react-native , lo que entra en conflicto con el tipo console del nodo.

Pude reproducirlo en la compilación interna creando una nueva aplicación de reacción mecanografiada con create-react-app e instalando @types/styled-components .

No creo que este sea un problema de VS Code y ya hay un problema abierto en DefinitelyTyped aquí

Hmmm, no uso componentes con estilo. No es imposible que viniera con alguna otra biblioteca.

@mschipperheyn Recomendaría verificar lo que aparece cuando intentas completar automáticamente console . Pude averiguar qué paquete estaba declarando otra definición de console mirando las referencias de cada sugerencia de autocompletar.

Estoy experimentando lo mismo (en la versión 1.30.2). Es un proyecto de React Native, que no usa componentes con estilo (pero cualquier otra biblioteca podría hacerlo). Al escribir console continuación, se muestra la salida respectiva de autocompletar. El primero hace un auto import , el segundo hace un auto require .

Screen Shot 2019-03-20 at 17 47 43

Editar: Parece que en mi configuración apunta a lo siguiente ~/Library/Caches/typescript/3.2/node_modules/@types/node/index.d.ts en la línea 207

Agregue un archivo console.d.ts a su raíz src y agregue el siguiente contenido:

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

Eso arreglará tu importación

Gracias @BrendonSled por esa solución temporal ... que parece haberlo resuelto para mí, ahora agrego esto a todos mis otros proyectos 🙈

Este problema se ha marcado como "Externo" y no ha tenido actividad reciente. Se ha cerrado automáticamente por motivos de mantenimiento.

@BrendonSled gracias !! Finalmente una solución tmp

¿Alguien tiene una actualización sobre esto más allá de las soluciones temporales? Google solo devuelve este enlace y el enlace StackOverflow publicado antes

@BrendonSled gracias por su solución

Esto me está volviendo loco...

¡Argh, esto es tan molesto!

El mismo problema aqui. Estoy en Linux Mint 19.1.

La única forma en que puedo evitar esta característica auto import es:

Vaya a File : arrow_forward: Preferences : arrow_forward: Settings : arrow_forward: Busque Javascript Auto Imports y / o Typescript Auto Imports : arrow_forward: desmarque Enable/disable auto imports suggestions .

O

Vaya a File : arrow_forward: Preferences : arrow_forward: User Snippets : arrow_forward: Seleccione global.code-snippets : arrow_forward: Guárdelo en /vscode/snippets/global.code-snippets : arrow_forward : luego agregue y guarde este fragmento global (alternativamente, puede crear un fragmento específico de idioma si no desea que sea global; esto hará que el fragmento de consola debajo de la primera entrada en la lista de sugerencias automáticas):

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

mismo problema aquí Visual Studio 1.33.1 nodo 10
La solución temporal funcionó para mí ...

Esto es exasperante. Sería genial si pudiéramos incluir en la lista negra ciertas importaciones de automóviles.

Esto es sumamente molesto. La solución publicada por @BrendonSled no es válida según los estrictos ts. ¿Alguna otra forma de arreglar esto?

'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 da algunas sugerencias sobre este tema .

En particular, tanto esta sugerencia como esta sugerencia parecen haber mejorado la situación para mí.

@RyanCavanaugh ¿De alguna manera podemos mejorar la experiencia incluso si hay un d.ts incorrecto de un paquete?

Crédito a @mattcarlotta por su respuesta. Solo estoy formateando esto para JSON ya que VSCode no parece respetarlo de otra manera:

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

Esto me ha estado impulsando 🙃 en proyectos React Native

Este problema debería haberse solucionado. Si todavía te encuentras con esto, por favor

  1. asegúrese de seguir viendo el comportamiento después de instalar este complemento
  2. proporcionar una reproducción mínima del tema.

@DanielRosenwasser
Instalo el complemento y luego perdí cualquier importación automática.
Quiero la importación automática, pero no quiero importar automáticamente la consola.

Bien, eso suena como un problema separado que debería presentar en https://github.com/Microsoft/TypeScript si puede proporcionar una reproducción mínima de ese problema.

@DanielRosenwasser Ese complemento lo resolvió por mí. No estoy muy seguro de entender lo que hace. ¿Es una solución alternativa hasta que se publique una nueva versión de VSCode, o es una solución más permanente?

Significa que el problema ya se ha solucionado y se solucionará en la próxima versión de VS Code.

esto todavía no está arreglado en la última versión de vscode

¿Tenemos alguna actualización reciente para este problema? este problema aún persiste en la última versión de vscode para mí también.

Perdón, es mi culpa. Estará en el lanzamiento del próximo mes. Los iniciados y los usuarios de https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next tendrán la solución disponible.

@DanielRosenwasser ¿Estás seguro de eso? Tengo JavaScript and TypeScript Nightly instalado y sigo teniendo este problema.

Veo el problema con VScode Insider (sin el complemento) y VSCode (con el complemento instalado). Ambos parecen usar 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

VSCode Insider

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

Screenshot 2019-08-13 at 17 08 37

¿Podría reabrirse esto? Porque aún no está arreglado (ni siquiera con el complemento Typecript Nightly)

Hola a todos, ¿alguien puede compartir un repositorio real que tenga este problema? Suena loco, pero no puedo reproducir nada. TypeScript ha tenido un manejo especial para excluir las importaciones automáticas para declaraciones que simplemente reexportan un global durante más de un año. El hecho de que eso no les esté sucediendo a todos significa que está sucediendo algo muy extraño, pero aparentemente bastante común.

Mi mejor suposición es que alguna combinación de dependencias le ha dado dos versiones diferentes de @types/node simultáneamente, y de alguna manera eso está tirando una llave inglesa en el sistema. Voy a intentar inventar escenarios como ese, pero si alguien puede proporcionar un entorno exacto donde esto suceda, definitivamente acelerará la solución.


Actualización: descubrí una reproducción. Indiferencia.

Parece que esto no llegará al RC, pero debería llegar a la versión nocturna y adecuada de 3.6.

Ejecuto Mac y Ubuntu. Mac está bien, Ubuntu tiene este problema.
Corregido con Nightly.

Para quien diga que JavaScript y TypeScript Nightly no funcionan, asegúrese de configurarlo correctamente:

  1. Abra un archivo JavaScript o TypeScript en VS Code.
  2. En la paleta de comandos de VS Code, ejecute el comando TypeScript: Seleccionar versión de TypeScript.
  3. Asegúrese de tener seleccionada la versión de Usar VS Code

Vivía felizmente sin este problema hasta que instalé los componentes con estilo y ahí está de nuevo.

@tlaak ¿qué versión de TypeScript estás usando? Estoy bastante seguro de que solucioné esto en 3.6. Por supuesto, las versiones anteriores de TypeScript seguirán mostrando este comportamiento para siempre.

@andrewbranch Creo que estaba usando la versión 3.5.x anterior configurada por create-react-app. Pero de todos modos, ya no tengo acceso al proyecto, así que no puedo confirmarlo.

@andrewbranch Acabo de tener el placer de encontrarme con este problema muy molesto con mi proyecto, y después de actualizar TypeScript de 3.5.xa 3.6, ¡puedo confirmar que está solucionado! 🎉 FYI para cualquier otra persona con este problema: asegúrese de que la versión de Typecript en la esquina inferior derecha de VS Code también esté configurada en 3.6.x

la versión 3.5.x está ahí, y en 3.6.2, no más importación automática de consola.
¿Cuál es la 3.6.2 que parece la versión ts predeterminada de vscode?

image

asegúrese de que su vscode esté configurado en el valor predeterminado y no en la versión ts del proyecto / espacio de trabajo
image

Puede averiguarlo siguiendo la ruta de donde sea que lleve la importación console = require ('consola'). Crédito a este stackoverflow.

@Zlass esto es un salvavidas 🙏

Para cualquiera que todavía tenga problemas: puede seguir los pasos en stackoverflow

¿Fue útil esta página
0 / 5 - 0 calificaciones