Typescript: console.log استيراد وحدة تحكم الاستيراد التلقائي = يتطلب ('console') ؛

تم إنشاؤها على ١٠ مارس ٢٠١٩  ·  42تعليقات  ·  مصدر: microsoft/TypeScript

خطوات الاستنساخ:
اكتب console. . 7 مرات من أصل 10 ، سيقوم vscode بإدراج import console=require('console'); في الجزء العلوي المستورد من الملف مما يؤدي إلى حدوث خطأ في الترجمة.

المشكلة الوحيدة الأكثر إزعاجًا من رمز vs code إلى حد بعيد.


هل تحدث هذه المشكلة عند تعطيل كافة الملحقات؟: لست متأكدًا

Bug Fixed VS Code Priority

التعليق الأكثر فائدة

أضف ملف console.d.ts إلى جذر src الخاص بك وأضف المحتويات التالية:

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

سيصلح ذلك استيرادك

ال 42 كومينتر

نفس الشيء هنا (Ubuntu 18.04). جاء مع تحديث VSCode الجديد .. مزعج للغاية.

يبدو أن سبب ذلك هو تعريف نوع node . إزالة:

declare module "console" {
    export = console;
}

في ../node_modules/@types/node/index.d.ts يبدو أنه إصلاح مؤقت حتى يتم تحديث هذا التعريف. أو قد يكون ناتجًا عن وحدة عقدة مثبتة أخرى تعلن تعريف نوع لـ console . يمكنك معرفة ذلك باتباع المسار الذي يؤدي إليه import console=require('console') . الفضل في هذا التدفق المكدس .

هل يتم إعادة إنتاج هذا في أحدث المطلعين على VS Code مع تعطيل جميع الملحقات؟ تأكد من أنك تستخدم أحدث إصدار من TypeScript أيضًا

Zlass أيضًا أي إصدار من أنواع العقدة تستخدمه؟ لا أرى هذا الإعلان في آخر @types/node ولم أتمكن من إعادة معالجة هذه المشكلة

حسنًا ، أعتقد أنني وجدت السبب. يبدو أنه خطأ متعلق بـ @types/styled-components له اعتماد على @types/react-native ، والذي يتعارض مع نوع العقدة console .

لقد تمكنت من إعادة إنتاجه في الإصدار الداخلي من خلال إنشاء تطبيق رد فعل مطبوع جديد باستخدام create-react-app وتثبيت @types/styled-components .

لا أعتقد أن هذه مشكلة في VS Code وهناك بالفعل مشكلة مفتوحة لها في DefinitelyTyped هنا

هممم ، أنا لا أستخدم المكونات المصممة. ليس من المستحيل أنه جاء مع بعض المكتبات الأخرى

mschipperheyn أوصي بفحص ما يظهر عند محاولة الإكمال التلقائي console . تمكنت من معرفة الحزمة التي كانت تعلن عن تعريف آخر لـ console خلال إلقاء نظرة خاطفة على مراجع كل اقتراح يتم إكماله تلقائيًا.

أواجه نفس الشيء (في الإصدار 1.30.2). إنه مشروع React Native ، لا يستخدم مكوّنات Styled (لكن أي lib آخر قد يكون). عند كتابة console أدناه ، يكون الناتج الخاص بالإكمال التلقائي. الأول يقوم بعمل تلقائي import ، والثاني يقوم بعمل تلقائي require .

Screen Shot 2019-03-20 at 17 47 43

تحرير: يبدو أنه في الإعداد الخاص بي يشير إلى ~/Library/Caches/typescript/3.2/node_modules/@types/node/index.d.ts في السطر 207

أضف ملف console.d.ts إلى جذر src الخاص بك وأضف المحتويات التالية:

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

سيصلح ذلك استيرادك

شكرًا BrendonSled لهذا الإصلاح المؤقت ... الذي يبدو أنه حل المشكلة بالنسبة لي - الآن لإضافة هذا إلى جميع مشاريعي الأخرى 🙈

تم تصنيف هذه المشكلة على أنها "خارجية" ولم تشهد أي نشاط حديثًا. تم إغلاقه تلقائيًا لأغراض التدبير المنزلي.

BrendonSled شكرا لك !! أخيرًا حل tmp

هل لدى أي شخص تحديث حول هذا بخلاف الحلول المؤقتة؟ تقوم Google فقط بإرجاع هذا الرابط و رابط StackOverflow المنشور من قبل

BrendonSled تشك للحل الخاص بك

هذا يقودني للجنون...

أرغ ، هذا مزعج للغاية!

نفس المشكلة هنا. أنا على Linux Mint 19.1.

الطريقة الوحيدة التي يمكنني بها الالتفاف على هذه الميزة auto import هي إما:

انتقل إلى File : arrow_forward: Preferences : arrow_forward: Settings : arrow_forward: ابحث عن Javascript Auto Imports و / أو Typescript Auto Imports : arrow_forward: إلغاء التحديد Enable/disable auto imports suggestions .

أو

انتقل إلى File : arrow_forward: Preferences : arrow_forward: User Snippets : arrow_forward: حدد global.code-snippets : arrow_forward: احفظه في /vscode/snippets/global.code-snippets : arrow_forward : ثم أضف هذا المقتطف العام واحفظه (بدلاً من ذلك ، يمكنك إنشاء مقتطف محدد للغة إذا كنت لا تريد أن يكون عامًا - سيؤدي ذلك إلى جعل مقتطف وحدة التحكم أسفل الإدخال الأول في قائمة الاقتراحات التلقائية):

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

نفس المشكلة هنا فيجوال ستوديو 1.33.1 عقدة 10
حل مؤقت يعمل بالنسبة لي ...

هذا أمر مثير للغضب. سيكون رائعًا إذا تمكنا من وضع قائمة سوداء لواردات السيارات.

هذا مزعج للغاية. الحل الذي تم إرساله بواسطة BrendonSled غير صالح وفقًا لـ ts الصارمة. أي طريقة أخرى لإصلاح هذا؟

'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 محاولة إعطاء بعض الاقتراحات حول هذه المسألة .

على وجه الخصوص ، يبدو أن كل من هذا الاقتراح وهذا الاقتراح قد حسن الوضع بالنسبة لي.

RyanCavanaugh بأي طريقة يمكننا تحسين التجربة حتى إذا كان هناك d.ts غير صحيح من الحزمة؟

الائتمان إلى mattcarlotta لإجابته . أنا فقط أقوم بتنسيق هذا لـ JSON حيث لا يبدو أن VSCode تحترمه بطريقة أخرى:

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

لقد كان هذا يقودني 🙃 في مشاريع React Native

كان يجب إصلاح هذه المشكلة. إذا كنت لا تزال تواجه هذا ، من فضلك

  1. تأكد من أنك لا تزال ترى السلوك بعد تثبيت هذا المكون الإضافي
  2. توفير الحد الأدنى من إعادة إنتاج المشكلة.

تضمين التغريدة
قمت بتثبيت المكون الإضافي ثم فقدت أي استيراد تلقائي.
أريد الاستيراد التلقائي ، لكن لا أريد استيراد وحدة التحكم تلقائيًا.

حسنًا ، يبدو أن هذا يمثل مشكلة منفصلة يجب عليك تقديمها على https://github.com/Microsoft/TypeScript إذا كان بإمكانك توفير الحد الأدنى من إعادة إنتاج هذه المشكلة.

DanielRosenwasser هذا البرنامج المساعد حلها بالنسبة لي. لست متأكدًا تمامًا من فهمي لما يفعله ذلك. هل هذا حل بديل حتى يتم دفع إصدار جديد من VSCode ، أم أن هذا حل أكثر ديمومة؟

هذا يعني أن المشكلة قد تم إصلاحها بالفعل وسيتم إصلاحها في الإصدار التالي من VS Code.

لم يتم إصلاح هذا في أحدث إصدار من vscode

هل لدينا أي تحديث حديث لهذه المشكلة؟ لا تزال هذه المشكلة قائمة في أحدث إصدار من vscode بالنسبة لي أيضًا.

اسف هذا خطأي. سيكون في إصدار الشهر المقبل. المطلعون ومستخدمو https://marketplace.visualstudio.com/items؟itemName=ms-vscode.vscode-typescript-next سيكون لديهم الإصلاح متاحًا.

DanielRosenwasser هل أنت متأكد من ذلك؟ لقد تم تثبيت JavaScript and TypeScript Nightly وما زلت أتلقى هذه المشكلة.

أرى مشكلة في كل من VScode Insider (بدون المكون الإضافي) و VSCode (مع تثبيت المكون الإضافي). يبدو أن كلاهما يستخدم 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 من الداخل

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

هل يمكن إعادة فتح هذا من فضلك؟ لأنه لم يتم إصلاحه بعد (ولا حتى مع المكون الإضافي Typescript Nightly)

مرحبًا بالجميع ، هل شخص ما قادر على مشاركة الريبو الفعلي الذي يحتوي على هذه المشكلة؟ يبدو الأمر مجنونًا ، لكن لا يمكنني التراجع عن ذلك على الإطلاق. تتمتع TypeScript بمعالجة خاصة لاستبعاد عمليات الاستيراد التلقائي للإعلانات التي تقوم بإعادة تصدير عالمية لأكثر من عام. حقيقة أن هذا لا يحدث لكم جميعًا يعني أن شيئًا غريبًا جدًا ، لكنه شائع على ما يبدو ، يحدث.

أفضل تخميني هو أن مزيجًا من التبعيات قد منحتك نسختين مختلفتين من @types/node وقت واحد ، وهذا بطريقة ما يلقي مفتاح الربط في النظام. سأحاول ابتكار سيناريوهات من هذا القبيل ، ولكن إذا كان بإمكان شخص ما توفير بيئة دقيقة حيث يحدث هذا ، فسيؤدي ذلك بالتأكيد إلى تسريع الإصلاح.


تحديث: برزت من repro. تجاهل.

يبدو أن هذا لن يصل إلى RC ، ولكن يجب أن يصل إلى الإصدار الليلي والإصدار المناسب لـ 3.6.

أدير Mac و Ubuntu. Mac جيد ، Ubuntu لديه هذه المشكلة.
ثابت مع Nightly.

لمن يقول أن JavaScript و TypeScript Nightly لا يعملان ، تأكد من

  1. افتح ملف JavaScript أو TypeScript في VS Code.
  2. في لوحة أوامر VS Code ، قم بتشغيل TypeScript: Select TypeScript version command.
  3. تأكد من تحديد إصدار Use VS Code

كنت أعيش بسعادة بدون هذه المشكلة حتى قمت بتثبيت المكونات المصممة وهناك مرة أخرى.

tlaak ما هو إصدار TypeScript الذي تستخدمه؟ أنا متأكد من أنني أصلحت هذا في 3.6. بالطبع ، ستستمر الإصدارات القديمة من TypeScript في إظهار هذا السلوك إلى الأبد.

andrewbranch أعتقد أنني كنت أستخدم الإصدار 3.5.x الأقدم الذي تم إعداده بواسطة تطبيق create-react-app. لكن على أي حال ، لم يعد لدي وصول إلى المشروع ، لذا لا يمكنني التأكيد.

andrewbranch لقد كان من دواعي سروري للتو أن

الإصدار 3.5.x موجود ، وفي 3.6.2 ، لا مزيد من الاستيراد التلقائي لوحدة التحكم.
يبدو أن 3.6.2 هو إصدار ts الافتراضي vscode.

image

تأكد من تعيين vscode على الإعداد الافتراضي وليس على إصدار ts الخاص بالمشروع / مساحة العمل
image

يمكنك معرفة ذلك باتباع المسار الذي تؤدي إليه وحدة التحكم في الاستيراد = تتطلب ('وحدة التحكم'). الفضل في هذا التدفق المكدس.

Zlass هذا هو المنقذ للحياة 🙏

بالنسبة لأي شخص لا يزال لديه مشكلات: يمكنك اتباع الخطوات الخاصة بالتكديس

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات