import console = require("console");
console.
<<入力します。そして上記はVScodeに自動的にインポートされます。誰もがそれを無効にする方法を知っていますか?
(私はそれが私の拡張の1つであると思います。おそらくよりきれいです)
編集:それはReact TypeScript環境でのみ発生します。 TypeScriptでは反応しません。
免責事項:これは「解決策」と見なされるべきではありませんが、それは最も簡単で速いです。
この答えはあなたがVSCodeを使っていると仮定しています。他のIDEも似ているはずです。
console
と入力し始めます.
と入力し、 IntelliSense にimport console = require("console");
を追加します。require("console")
上でCtrlキーを押しながらクリック(またはF12キー、またはmacOSではCmdキーを押しながらクリック)します。declare module "console" {
export = console;
}
私もこれを経験しました、そしてそれはVSCodeの自動インポート機能に問題があるようです。すべての拡張機能を無効にしても、それが解決されるわけではありません。
回避策として、設定で自動インポートを無効にすることができます。
Javascriptを使用している場合
"javascript.suggest.autoImports":false
TypeScriptを使用している場合
"TypeScript.suggest.autoImports":false
編集:不完全な自動インポートは、依存ツリーの下のパッケージ内のこのコードのために発生します
declare module "console" {
export = console;
}
パッケージは、ローカルのnode_modulesディレクトリか、グローバルにインストールされた参照パッケージのどちらかにあります。
declare module "console"
を検索してくださいnpm list [packageName]
を実行して、package.jsonのどのパッケージが、コンソールコードを含むパッケージに依存しているかを確認します。ローカルのnode_modulesにコードが見つからない場合は、
Package.jsonでパッケージを1つずつ削除する
プロジェクト内のパッケージによって参照される可能性がある、グローバルにインストールされたモジュール内のコンソールコードを検索します。
%USERPROFILE%\ AppData\Roaming\npm\node_modules%USERPROFILE%\ AppData\Local\Microsoft\TypeScript
私はそれが直接的な解決策ではないことを知っていますが、それが助けになることを願っています。 react-native-copilotを削除することで問題は解決しました。
console.log
を挿入するためのスニペットを追加して代わりにそれを使用する場合、 "console"の自動インポートはありません。
https://code.visualstudio.com/docs/editor/userdefinedsnippets#_creating-your-own-snippets
これが私のスニペットです:
{
"Print to console": {
"prefix": "cl",
"body": [
"console.log('$1');",
],
"description": "Log output to console"
}
}
あなたが私のような "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"
}
}
これを防ぐ1つの方法は、tsconfig.jsonファイルを変更して、プロジェクトに自動的にインポートされる一連のタイプを制限することです。
私はこれと同じ問題を抱えていました、そして、私はそれを加えることによってそれを直しました:
types: []
私のtsconfig.jsonファイルに。これが行うことは、@types/
を持つすべてのノードパッケージを自動的にプロジェクト設定にインポートすることを無効にするTypeScript(および拡張ではVSCode)です。これらの型を使用して明示的にパッケージをインポートしても、TSがそれらの型定義をインポートするのを妨げることはありません。
私の特定のケースでは、console
の定義はStorybookの依存関係としてプロジェクトにインポートされた@types/node
から来ていました。しかし、私のプロジェクトはブラウザで実行することを目的としたWebPackプロジェクトなので、Node.js型を私のソースコードにインポートすることは意味がありません。ブラウザで使用する基本型のセットは、ノードタイプではなく、DOMタイプです。
プロジェクトによっては、一連の基本型パッケージをtypesパラメータに明示的に追加する必要があります(types: ["dom", "react"]
など)。しかし、私の場合、これは不要であることがわかり、私のプロジェクトは空のリストを使用しても問題なくコンパイルできました。そしてVSCodeが自動的に 'console'をインポートする傾向は完全になくなったようです。私は今のところ他の悪影響に気づいていません。
Tsconfig.jsonで型を設定する方法の詳細については、 https://www.typescriptlang.org/docs/handbook/tsconfig-json.html を参照してください。
私が見つけた最も洗練された解決策はあなたのプロジェクトのどこかにダミーのconsole.d.ts
ファイルを作成することです:
declare module 'console' {
export = typeof import("console");
}
これは自動インポートを妨げます。
クレジット: https://github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436