dra*_*oul 143 typescript visual-studio-code
import console = require("console");
Run Code Online (Sandbox Code Playgroud)
console."我打字.以上是在VScode中自动导入的.有谁知道如何禁用它?
(我认为这是我的扩展之一.可能比较漂亮.)
编辑:它只发生在React Typescript环境中.没有反应就没有打字稿.
Zen*_*tzi 125
免责声明:不应将其视为“解决方案”,但这是最简单/最快的。
这个答案是假设您使用的是VSCode。其他IDE应该相似。
console.,允许IntelliSense添加import console = require("console");require("console")declare module "console" {
export = console;
}
Run Code Online (Sandbox Code Playgroud)
KvD*_*KvD 32
我也经历过这种情况,这似乎是VSCode中自动导入功能的一个问题.禁用所有扩展似乎也没有让它消失.
作为解决方法,您可以在设置中禁用自动导入.
如果你使用Javascript
"javascript.suggest.autoImports":false
如果你使用Typescript
"typescript.suggest.autoImports":false
编辑:错误的自动导入发生是因为依赖关系树中的包中的此代码
declare module "console" {
export = console;
}
Run Code Online (Sandbox Code Playgroud)
该程序包可以位于本地node_modules目录中,也可以位于全局安装的引用程序包中.
declare module "console"npm list [packageName]以确定package.json中的哪个包依赖于包含控制台代码的包.如果您在本地node_modules中找不到代码,则可以
在package.json中逐个删除软件包
在全局安装的模块中搜索可能由项目中的包引用的控制台代码
%USERPROFILE%\ AppData\Roaming \npm \node_modules%USERPROFILE%\ AppData\Local\Microsoft\TypeScript
我知道这不是一个直接的解决方案,但我希望它有所帮助,在我的情况下,我有一个来自react-native-copilot的参考 - > rimraf - >节点,其中包含控制台代码.删除react-native-copilot解决了这个问题.
Gio*_*gio 17
如果您添加一个用于插入的代码段console.log,而是使用该代码段,则不会自动导入“控制台”
https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets
这是我的片段:
{
"Print to console": {
"prefix": "cl",
"body": [
"console.log('$1');",
],
"description": "Log output to console"
}
}
Run Code Online (Sandbox Code Playgroud)
Krz*_*zor 14
我发现的最优雅的解决方案是console.d.ts在项目的某个位置创建虚拟文件:
declare module 'console' {
export = typeof import("console");
}
Run Code Online (Sandbox Code Playgroud)
这将阻止自动导入。
积分:https : //github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436
如果您喜欢我忘记了“ cl”,则可以在摘要中使用多个前缀:)
{
"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"
}
}
Run Code Online (Sandbox Code Playgroud)
防止这种情况发生的一种方法是修改tsconfig.json文件,以限制自动导入到项目中的类型集。
我遇到了同样的问题,并通过添加以下内容进行修复:
types: []
进入我的tsconfig.json文件。这样做是禁止TypeScript(以及扩展名VSCode)自动将所有随带的节点程序包导入@types/到项目配置中。如果您使用这些类型显式导入程序包,这不会阻止TS导入这些类型定义。
在我的特定情况下,console定义来自@types/node,已作为Storybook的依赖项导入到项目中。但是,我的项目是一个webpack项目,旨在在浏览器中运行,因此将Node.js类型导入我的源代码中没有任何意义。您要在浏览器中使用的基本类型集是dom类型,而不是节点类型。
根据您的项目,您可能必须将一组基本类型包显式添加到types参数中(types: ["dom", "react"]依此类推)。但是,在我看来这是不必要的,我的项目能够使用空列表进行编译。VSCode自动导入“控制台”的趋势似乎已完全消失。到目前为止,我还没有发现任何其他不良影响。
有关在tsconfig.json中设置类型的更多信息,请点击此处:https ://www.typescriptlang.org/docs/handbook/tsconfig-json.html
| 归档时间: |
|
| 查看次数: |
23248 次 |
| 最近记录: |