import console = require("console");
console.<<入力します。以上はVScodeに自動的にインポートされます。誰かがそれを無効にする方法を知っていますか?
(私はそれが私の拡張機能の1つだと思います。おそらくPrettierです。)
編集:React Typescript環境でのみ発生します。反応せずにTypescriptではありません。
import console = require("console");
console.<<入力します。以上はVScodeに自動的にインポートされます。誰かがそれを無効にする方法を知っていますか?
(私はそれが私の拡張機能の1つだと思います。おそらくPrettierです。)
編集:React Typescript環境でのみ発生します。反応せずにTypescriptではありません。
回答:
免責事項:これは「解決策」と考えるべきではありませんが、それは最も単純/最速です。
この答えは、VSCodeを使用していることを前提としています。他のIDEも同様です。
console.、IntelliSenseが追加できるようにしますimport console = require("console");require("console")declare module "console" {
export = console;
}
"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-> rimraf-> nodeからの参照がありました。反応ネイティブ副操縦士を削除すると、問題が解決しました。
~/Library/Caches/フォルダ内の "typescript/3.2/node_modules/@types/node/index.d.ts"内に欠陥のあるコードが見つかりました。Macを使用しています。それは私のキャッシュワークスペースにあるので、実際のコードを削除しました: `` `lang-js declare module" console "{export = console; } `` `そしてそれはうまくいった!
私が見つけた最もエレガントな解決策console.d.tsは、プロジェクトのどこかにダミーファイルを作成することです:
declare module 'console' {
export = typeof import("console");
}
これは自動インポートを防ぎます。
クレジット:https : //github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436
挿入するスニペットを追加して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"
}
}
私が「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ファイルに。これにより、TypeScript(およびVSCodeの拡張機能)@types/がプロジェクト構成に含まれているすべてのノードパッケージを自動的にインポートすることができなくなります。これらのタイプを使用してパッケージを明示的にインポートする場合、TSがこれらのタイプ定義をインポートすることを妨げません。
私の特定のケースでは、console定義は@types/nodeStorybookの依存関係としてプロジェクトにインポートされたからのものでした。ただし、私のプロジェクトはブラウザーで実行することを目的としたwebpackプロジェクトだったため、Node.jsタイプをソースコードにインポートしても意味がありませんでした。ブラウザで使用するタイプの基本セットは、ノードタイプではなくdomタイプです。
プロジェクトによっては、基本タイプパッケージのセットをtypesパラメータに明示的に追加する必要がある場合があります(以下同様types: ["dom", "react"])。しかし、私の場合、これは不要であることが判明し、私のプロジェクトは空のリストで問題なくコンパイルできました。また、VSCodeが「コンソール」を自動的にインポートする傾向は完全になくなったようです。これまで他の悪影響に気づきませんでした。
tsconfig.jsonでのタイプ設定の詳細については、https://www.typescriptlang.org/docs/handbook/tsconfig-json.htmlをご覧ください。