विस्कोस आयात आयात कंसोल = आवश्यकता ("कंसोल"); खुद ब खुद


145
import console = require("console");

console.<< मैं टाइप करता हूं। और ऊपर वीएसकोड में स्वचालित रूप से आयात हो जाता है। किसी को पता है कि उसे कैसे निष्क्रिय करना है?

(मुझे लगता है कि यह मेरे एक्सटेंशन में से एक है। संभवतः प्रीटीयर।)

संपादित करें: यह केवल रिएक्ट टाइपस्क्रिप्ट वातावरण में होता है। बिना प्रतिक्रिया के टाइपस्क्रिप्ट में नहीं।


इसके साथ कोई भाग्य? मैं एक ही मुद्दा है
20:25 पर user2517182

उत्तरों में वर्कअराउंड के अलावा ऐसा लगता है कि यह आखिरी अपडेट के साथ पेश किए गए VSCode में एक बग है। इसी बग-रिपोर्ट को यहां भरा गया है: github.com/Microsoft/vscode/issues/70157
इनहाउस

1
टीएस / जे एस रात प्लगइन VSCode के लिए 1.36+ पर यह समस्या नहीं
एंड्रयू ली

जवाबों:


126

अस्वीकरण: इसे "समाधान" नहीं माना जाना चाहिए, लेकिन यह सबसे सरल / सबसे तेज़ है।

यह उत्तर मान रहा है कि आप VSCode का उपयोग कर रहे हैं। अन्य IDE समान होने चाहिए।

  1. टाइप करना शुरू करें console
  2. IntelliSense को जोड़ने की .अनुमति देते हुए, प्रवेश या प्रकार पर क्लिक करेंimport console = require("console");
  3. Ctrl + क्लिक करें (या F12, या Cmd + macOS पर क्लिक करें) require("console")
  4. इस कोड पर टिप्पणी करें:
declare module "console" {
    export = console;
}

9
यदि यह रेडिट होता, तो मैं आपको इसके लिए सोना देता। धन्यवाद :)
FearMediocrity

5
अच्छी तरह से काम करता है। यह Cmd + होना चाहिए "console", हालांकि इस पर क्लिक करें , लेकिन यह एक विवरण है। धन्यवाद!
लूलूई

अगर F12 या Cmd + क्लिक से परेशानी हो रही है, तो "कंसोल" पर राइट क्लिक करें और फिर "परिभाषा पर जाएं" भी काम करता है (कम से कम
ओएक्सएक्स

2
यह एक फाइल संपादित कर रहा है नोड_मॉड्यूल्स के भीतर जिसका अर्थ है कि 'फिक्स' रीसेट हो जाएगा जब आप एक npm फिर से स्थापित करते हैं। मुझे लगता है कि यह जल्दी ठीक है, लेकिन स्वीकार्य नहीं के पास
रेल्टो

उन सभी के लिए जो एक घोषणा फ़ाइल को संशोधित नहीं करना चाहते हैं, टीएस / जेएस नाइटली प्लगिन VSCode 1.36+ के लिए इसे ठीक करता है
एंड्रयू ली

31

मैंने यह अनुभव किया कि यह VSCode में ऑटो आयात सुविधा के साथ एक समस्या है। सभी एक्सटेंशन को अक्षम करने से ऐसा लगता है कि यह या तो चला जाएगा।

वर्कअराउंड के रूप में आप सेटिंग्स में ऑटोइमपोर्ट को अक्षम कर सकते हैं।

यदि आप जावास्क्रिप्ट का उपयोग करते हैं

"javascript.suggest.autoImports": असत्य

यदि आप टाइपस्क्रिप्ट का उपयोग करते हैं

"typecript.suggest.autoImports": असत्य

यहाँ छवि विवरण दर्ज करें

संपादित करें: निर्भरता ट्री के नीचे एक पैकेज में इस कोड के कारण दोषपूर्ण ऑटोइमपोर्ट होता है

declare module "console" {
    export = console;
}

पैकेज को आपके स्थानीय नोड_मॉड्यूल निर्देशिका में या वैश्विक रूप से स्थापित संदर्भित पैकेज में स्थित किया जा सकता है।

  1. के लिए अपने स्थानीय node_modules खोजें declare module "console"
  2. यदि आप इसे किसी स्थानीय पैकेज में पाते हैं, तो यह npm list [packageName]निर्धारित करने के लिए चलाएँ कि पैकेज किस पैकेज में है। Json पैकेज में कंसोल कोड के साथ निर्भर है।

यदि आप अपने स्थानीय नोड_ कोड में कोड नहीं पाते हैं तो आप या तो कर सकते हैं

  1. Package.json में एक-एक करके पैकेजों को हटा दें

  2. विश्व स्तर पर स्थापित मॉड्यूल में कंसोल कोड की खोज करें, जिसे आपकी परियोजना में पैकेज द्वारा संदर्भित किया जा सकता है

% USERPROFILE% \ AppData \ Roaming \ npm \ नोड_ नोड्स% USERPROFILE% \ AppData \ Local \ Microsoft \ TypeScript

मुझे पता है कि यह एक सीधा आगे समाधान नहीं है, लेकिन मुझे आशा है कि यह मदद करता है, मेरे मामले में मेरे पास प्रतिक्रिया-देशी-कोपिलॉट -> रिमरफ -> नोड का संदर्भ था जिसमें कंसोल कोड था। प्रतिक्रिया-देशी-कोपिलॉट को हटाने से समस्या हल हो गई।


8
हाँ, यह भी कोई अन्य ऑटो आयात काम का कारण बनता है। मुझे यह सुविधा पसंद है और इसे उत्तर के रूप में स्वीकार नहीं करते ...: - D (हालांकि धन्यवाद!) एक और समाधान होना चाहिए। मैं अभी भी देख रहा हूँ।
ड्रेगनसोल

मुझे पता चला कि ऐसा तब नहीं होता है जब आप create-react-app my-app --scripts-version = react-script-ts के साथ एक नया प्रोजेक्ट बनाते हैं तो यह किसी भी तरह कार्यक्षेत्र सेटिंग्स से जुड़ा होना चाहिए।
ड्रेगनसॉल

मैंने कुछ और शोध किए, संपादित उत्तर देखें, आशा है कि आप इसे अपनी परियोजना में पाएंगे!
केवीडी

1
हाँ, यह वास्तव में काम किया। मैं सोच रहा हूँ, यह एक VSCode बग है या इन संकुल के रचनाकारों से? मेरे लिए यह @ प्रकार / नोड और @ प्रकार / प्रतिक्रिया-डोम में था। धन्यवाद :-)
ड्रेगनसोल

4
"टाइपस्क्रिप्ट/3.2/node_modules/@types/node/index.d.ts" जो ~/Library/Caches/फ़ोल्डर के अंदर है, के अंदर दोषपूर्ण कोड पाया गया । मैं एक मैक पर हूँ। चूँकि यह मेरे कैशिंग कार्यक्षेत्र में है, इसलिए मैंने वास्तविक कोड हटा दिया: `` लैंग-जेएस घोषित मॉड्यूल "कंसोल" {कंसोल =; } `` `और यह काम कर गया!
jcperez-ch

17

सबसे सुरुचिपूर्ण समाधान जो मुझे मिला है वह यह है कि डमी console.d.tsफ़ाइल को अपने प्रोजेक्ट में कहीं बनाएँ :

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

इससे ऑटो-आयात को रोका जा सकेगा।

क्रेडिट: https://github.com/Microsoft/TypeScript/issues/30471#issuecomment-474943436


यह एक सुरुचिपूर्ण समाधान है जिसे कई कार्यक्षेत्रों और उपकरणों में चेक किया जा सकता है और काम करेगा। धन्यवाद!
phsource

4
मुझे "निर्यात निर्यात असाइनमेंट की अभिव्यक्ति एक परिवेश के संदर्भ में एक पहचानकर्ता या योग्य नाम क्यों होना चाहिए (2714)"? मेरे tsconfig.json में कुछ सेटिंग से संबंधित हो सकता है?
मेहमत एन। यारार

हाँ यह हो सकता है ... आप मेरी सेटिंग यहाँ देख सकते हैं: github.com/codechecks/monorepo/blob/master/tsconfig.json यह कंसोल ..dts फ़ाइल के साथ काम करता है
Krzysztof Kaczal

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"
    }
}

5
यद्यपि यह कोई समाधान नहीं है, यह चतुर है और यह तब काम करता है जब आप उस पैकेज को नहीं हटा सकते हैं जो समस्या पैदा कर रहा है, जैसा कि अधिकांश मतदान जवाब में कहा गया है।
टिबूयर्सियो

मैं @tibuurcio से सहमत हूं। चतुर समाधान, लेकिन मैं इसे एक समाधान के रूप में स्वीकार नहीं कर सकता ...
7

काम नहीं किया। यह अभी भी ऑटो आयात करता है जब मैं कंसोल लिखता हूं तब मैं दबाता हूं "।" यह ऑटो आयात करता है
श्रीमान्खर

1
@ mr-ghamkhar यदि आप उपरोक्त स्निपेट का उपयोग करना चाहते हैं, तो आपको "cl" या जो कुछ भी आप "उपसर्ग" में लिखना चाहते हैं। ऑटोइमपोर्ट व्यवहार से बचने में सक्षम होने के लिए "कंसोल" के अलावा कुछ और होना चाहिए।
जियोर्जियो

9

यदि आप मुझे पसंद करते हैं "सीएल" भूल जाते हैं, तो आप स्निपेट्स में कई उपसर्गों का उपयोग कर सकते हैं :)

{
    "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
सही उत्तर आलसी है :)
FOLOF

यह मेरे लिए सबसे अच्छा समाधान है, क्योंकि आपको आंतरिक पैकेजों को संपादित करने की आवश्यकता नहीं है
हैरिसन

5

इसे रोकने का एक तरीका यह है कि अपनी परियोजना में स्वचालित रूप से आयात किए जाने वाले प्रकारों के सेट को सीमित करने के लिए अपनी tsconfig.json फ़ाइल को संशोधित करें।

मुझे भी यही समस्या थी, और मैंने इसे जोड़कर तय किया:

types: []

मेरी tsconfig.json फ़ाइल में। यह क्या है अक्षम है टाइपस्क्रिप्ट (और विस्तार VSCode द्वारा) स्वचालित रूप से @types/परियोजना कॉन्फ़िगरेशन में होने वाले सभी नोड पैकेजों को आयात करने से । यह TS को उन प्रकार की परिभाषाओं को आयात करने से नहीं रोकता है यदि आप स्पष्ट रूप से उन प्रकारों का उपयोग करके पैकेज आयात करते हैं।

मेरे विशिष्ट मामले में, consoleपरिभाषा से आ रहा था @types/node, जिसे स्टोरीबुक की निर्भरता के रूप में परियोजना में आयात किया गया था। हालाँकि, मेरी परियोजना एक वेबपैक परियोजना थी, जिसका उद्देश्य एक ब्राउज़र में चलना था, इसलिए मेरे स्रोत कोड में Node.js प्रकारों को आयात करने का कोई मतलब नहीं था। प्रकार के आधार सेट जो आप ब्राउज़र में उपयोग करना चाहते हैं, वे डोम प्रकार हैं, नोड प्रकार नहीं।

अपनी परियोजना के आधार पर, आपको बेस प्रकार के पैकेजों को स्पष्ट रूप से टाइप पैरामीटर ( types: ["dom", "react"]और इसी तरह) में जोड़ना पड़ सकता है । हालांकि, मेरे मामले में यह अनावश्यक निकला, मेरी परियोजना एक खाली सूची के साथ ठीक संकलन करने में सक्षम थी। और VSCode की प्रवृत्ति स्वचालित रूप से 'कंसोल' आयात करने के लिए पूरी तरह से दूर चला गया प्रतीत होता है; मैंने अब तक किसी अन्य बुरे प्रभाव पर ध्यान नहीं दिया है।

Tsconfig.json में टाइप करने के बारे में अधिक जानकारी यहाँ: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.