Definitelytyped: [@ types / reaction-redux] ليس لدى "hoist-non-reaction-statics" عضو مُصدَّر "NonReactStatics"

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

  • [x] حاولت استخدام الحزمة @types/react-redux وواجهت مشاكل.
  • [x] حاولت استخدام أحدث إصدار مستقر من tsc. https://www.npmjs.com/package/typescript
  • [x] لدي سؤال غير مناسب لـ StackOverflow . (يرجى طرح أي أسئلة مناسبة هناك).
  • [x] [أذكر] (https://github.com/blog/821-mention-somebody-they-re-notified) المؤلفون (انظر Definitions by: في index.d.ts ) حتى يتمكنوا من ذلك رد.

تضمين التغريدة

التحديث من @types/react-redux 7.0.1 إلى @types/react-redux 7.0.2 يعطي الخطأ التالي:

'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.

47 import { NonReactStatics } from 'hoist-non-react-statics';

يبدو أنه تم تقديمه هنا: https://github.com/DefinitelyTyped/DefinitelyTyped/commit/8b1beff944f6c7bf913b6fcee31fb5f7129064a7

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

قد أكون مخطئًا ولكن أعتقد أن المشكلة ربما تكون أكثر بساطة ،

import { NonReactStatics } from 'hoist-non-react-statics';

يجب ان يكون

import NonReactStatics from 'hoist-non-react-statics';

يعد الرجوع إلى إصدار @ types / رد فعل-redux 7.0.1 إصلاحًا سريعًا حتى يتم إصلاح ذلك.

ال 84 كومينتر

ييكيس. لقد قدمت تبعية على @types/hoist-non-react-statics في هذا التغيير ، لكنني لم أضفها كتبعية. هذه المشكلة هي أنني لست متأكدًا من مكان إعلانها على أنها تبعية ، لأن الأنواع تعتمد فقط على الأنواع.

JounQin ، هل يمكنك مساعدتي في فهم كيفية إصلاح هذا. هل نحتاج إلى إضافة ///<reference أو إضافة شيء إلى package.json ؟

كحل مؤقت ، يمكنك npm install --dev @types/hoist-non-react-statics لمشروعك.

قد أكون مخطئًا ولكن أعتقد أن المشكلة ربما تكون أكثر بساطة ،

import { NonReactStatics } from 'hoist-non-react-statics';

يجب ان يكون

import NonReactStatics from 'hoist-non-react-statics';

يعد الرجوع إلى إصدار @ types / رد فعل-redux 7.0.1 إصلاحًا سريعًا حتى يتم إصلاح ذلك.

حصلت على هذه القضية اليوم أيضا. ساعد تخفيض الإصدار إلى 7.0.1

كذلك هنا.

ييكيس. لقد قدمت تبعية على @types/hoist-non-react-statics في هذا التغيير ، لكنني لم أضفها كتبعية

بالتأكيد تمت إضافة @types/hoist-non-react-statics تلقائيًا كتبعية إلى @types/react-redux ، لكن (على ما يبدو) لم يكن ذلك كافيًا لعمل كتاباتك.

كحل مؤقت ، يمكنك npm install --dev @types/hoist-non-react-statics لمشروعك.

لا ، لن يعمل ذلك لأن هذه التبعية تمت إضافتها تلقائيًا بالفعل بواسطة DefinitelyTyped ، لكن لا يكفي أن يتعامل TS مع كتاباتك بشكل صحيح.

أعتقد أن المشكلة هي أن TS ليس على علم بوجود وحدة hoist-non-react-statics ، لأن الحزمة hoist-react-statics نفسها غير موجودة في node_modules (من العار أن TS لا تستطيع اشتقاق الوحدة النمطية من @types/hoist-non-react-statics package ، على الرغم من أنه قد يكون هناك سبب وجيه لمثل هذا السلوك مثل التوافق). تم تأكيد هذه الفرضية من خلال حقيقة أن التثبيت اليدوي لـ hoist-non-react-statics يجعل كتاباتك تعمل بشكل صحيح .

لذا ، أعتقد أن jamesreggio يجب عليك إضافة حزمة hoist-non-react-statics كتبعية إلى package.json من @types/react-redux لإصلاح هذه المشكلة.

تم تحديث surgeboris إلى 7.0.3 وإضافة [email protected] و @types/[email protected] ، تم إصلاح المشكلة

الإصلاح لا يعمل حقا بالنسبة لي. ربما أفعل شيئًا خاطئًا. باستخدام الغزل 1.13

حسنًا جميعًا ، شكرًا على سعة صدرك.

لقد اكتشفت إصلاحًا وفتحت PR: # 33919.

على ما يبدو ، إذا كنت تستخدم تصدير تعريف نوع نمط العقدة (مع export = ) ، فإن الطريقة الصحيحة للاستيراد هي باستخدام import [name] = require([package name]) . أنا لست على دراية بالفروق الدقيقة في أنماط الاستيراد / التصدير هذه ، وأنا واثق بشكل غامض من أنني أفهمها الآن 😆

نأمل أن يتمكن مشرفو DefinitielyTyped من دمجها وإصدارها في أسرع وقت ممكن. آسف مرة أخرى على الانحدار.

لسوء الحظ ، حتى مع إصدار 7.0.4 مؤخرًا ، فإن هذا لم يحل المشكلة بالنسبة لي

يبدو أن التبعية الصريحة على @types/hoist-non-react-statics ما زالت مفقودة.

في الواقع ، لا - تم تثبيت npm i @types/react-redux جديدًا @types/hoist-non-react-statics . لا ارى اي مشكلة؟

نعم ، تم إدراج التبعية بالتأكيد في package.json :

  "dependencies": {
    "@types/hoist-non-react-statics": "*",
    "@types/react": "*",
    "redux": "^4.0.0"
  },

إذا كنت لا تزال تواجه مشكلات ، فيجب عليك التحقق مرة أخرى من تثبيت الإصدارات الصحيحة من كل شيء.

(على وجه التحديد ، يتم سرد التبعية كـ * ، لذلك قد يكون لديك إصدار قديم من @types/hoist-non-react-statics ربما يفتقد النوع الذي يعتبره npm يلبي التبعية؟)

لذا ، فإن المشكلة دقيقة إلى حد ما.

تضمنت الحزمة hoist-non-react-statics كتابات أساسية خاصة بها من v2.2.0 حتى v3.0.0 ، وإذا كان إصدار hoist-non-react-statics الذي حل في جذر مشروعك في ذلك النطاق ، ستواجه هذا الخطأ نظرًا لأن الكتابة المحلية للحزمة لها الأسبقية على @types/hoist-non-react-statics .

هناك نوعان من الحلول الفورية:

  1. أضف hoist-non-react-statics@^3.3.0 إلى مشروعك كتبعية.
  2. في حالة استخدام الغزل ، أضف تجاوز الدقة إلى package.json النحو التالي:
    "resolutions": { "hoist-non-react-statics": "^3.3.0" }

لا يعتبر أي من هذين الخيارين مثاليًا ، لأن معظم المطورين (بحق) ليسوا على دراية بوجود hoist-non-react-statics في المقام الأول.

لست متأكدًا حقًا من الطريقة المثلى التي سيكون عليها هنا ، لكنني أظن أنه إذا تمكنا من إدراج إصدار محدد لكل نسخة مقابل @types/hoist-non-react-statics داخل package.json مقابل @types/react-redux ، نحن يمكن أن يخفف من التأثير.

weswigham - هل تعرف ما إذا كان من الممكن استبدال التبعية التي تم * بتبعية @types/hoist-non-react-statics بـ >=3.3.0 ؟

weswigham - هل تعرف ما إذا كان من الممكن استبدال التبعية

إذا قمت بإضافته صراحة في package.json فقد يعمل؟ AFAIK لا يمكنك ترميز الإصدارات الضمنية أو القائمة على تعيين المسار ، ولكن قد أكون مخطئًا.

sandersn تعرف أي شيء أكثر؟

لقد فتحت للتو علاقات عامة تتضمن إصدارًا محددًا من @types/hoist-non-react-statics في package.json . نأمل أن يعمل هذا؟ بالتأكيد لا يمكن أن تؤذي.

weswigham ، هل تمانع في المراجعة ومنح الموافقة؟

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979

لا أعرف ما إذا كان هذا هو الإصلاح الصحيح. لقد أضفت تبعية مباشرة على hoist-non-react-statics@latest وقد أصلحت جميع المشكلات.

لاف ، weswigham + sandersn - لست متأكدًا مما أفعله. فشل بناء Travis لأنني أضفت إصدارًا معينًا من pec مقابل @types/hoist-non-react-statics . انظر الخطأ هنا .

صحيح أن التغيير الذي أجريته إلى @types/react-redux _ يتطلب بحد أدنى 3.3.0 من @types/hoist-non-react-statics ، لذلك أشعر أنني يجب أن أكون قادرًا على التعبير عن هذا القيد. هل يمكنك مساعدتي في فهم كيفية القيام بذلك؟ (هل يجب أن أفعل كما تقول رسالة الخطأ وأضيفها إلى dependenciesWhitelist.txt في types-publisher ؟ يبدو أن هذا يشبه المطرقة كبيرة جدًا.)

إنها ليست مطرقة كبيرة جدًا - مشكلتك هي بالضبط ما تصفه رسالة السجل (باستثناء أننا قمنا أيضًا بالتبديل مرة أخرى إلى الحزمة الأساسية وليس أنواع الشحن ، تمامًا).

رائع ، لدي علاقات عامة جاهزة للدمج على types-publisher : https://github.com/Microsoft/types-publisher/pull/595

weswigham - هل يمكنك الهبوط بها؟

تم نشره اعتبارًا من 3:06 PDT (40 دقيقة قبل هذا التعليق أو نحو ذلك).

حسنًا يا رفاق ، جرِّبوا @types/[email protected] واسمحوا لي أن أعرف ما إذا كنت لا تزال محطمًا.

لا تزال نفس المشكلة مع @types/[email protected] . الإصلاح الوحيد الذي نجح معي هو طلب hoist-non-react-statics يدويًا في مشروعي

ثانٍ ، لا يزال مكسورًا في @ types / رد فعل[email protected].

jamesreggioweswigham لست متأكدًا مما إذا كنت قد شاهدت التعليقات ولكنك تضغط على ping لذلك نحن على يقين من أنك رأيتها

نعم ، شكرًا ، لقد فعلت. كنت أقوم بتدريس React بعد ظهر هذا اليوم في Cisco عندما قام هذا الفصل بتدريس React. بعد فحص سريع ووجدت هذا الموضوع ، قمت بإعادة تشغيلهم إلى 7.0.1 وعمل بشكل جيد. لكن لدي بعض الغرابة الطفيفة. إذا قمت بإضافة إحصائيات غير قابلة للتفاعل ، فإنها تعمل ، كما هو موضح أعلاه. إذا قمت بإلغاء تثبيت احصائيات الرفع غير المتفاعلة ، فسيستمر في العمل. لذلك ربما يكون هناك تبعية حقيقية يتم التقاطها هناك ، لكنها تظل ثابتة حتى لو قمت بإزالة تلك الحزمة. إذا قمت بمسح node_modules و package-lock.json وأعدت التثبيت بدون الرافعة ، فسيتم كسرها مرة أخرى. لا بد لي من الخروج من هنا الآن ، لذلك لا يمكنني قضاء المزيد من الوقت الآن في محاولة التعمق أكثر. قد يجدها شخص آخر أسرع على أي حال كونها أكثر انسجامًا مع الحزمة.

سأبحث في هذا مرة أخرى غدًا ، لكن بصراحة ، أحتاج إلى بعض المساعدة
من خبير. تعقيدات نظام وحدة TS تحيرني. انا اشعر
كأنني فعلت كل شيء بشكل صحيح هنا ...

هل يمكن لأولئك الذين يواجهون المشكلة منكم لصق لمحة عن ملف
package-lock.json أو yarn.lock؟ أشعر أن هذا قد يكون مشكلة ذات صلة
إلى الحقيقة غير العادية المتمثلة في أن احصائيات الرفع غير المتفاعل تضمنت أنواعها الخاصة
لفترة قصيرة في الماضي.

في الخميس 21 مارس 2019 الساعة 20:03 كتب Joel Mussman [email protected] :

نعم ، شكرًا ، لقد فعلت. كنت أقوم بتدريس React بعد ظهر اليوم في Cisco عندما كان هذا
عض الطبقة. بعد فحص سريع ووجدت هذا الخيط الذي أعيدته
وصولا إلى 7.0.1 وعملت بشكل جيد. لكن لدي بعض الغرابة الطفيفة. إذا أضفت
إنها تعمل ، كما هو موضح أعلاه. إذا قمت بإلغاء التثبيت
إستاتيكا الرفع غير المتفاعل تستمر في العمل. لذلك ربما هناك حقيقي
التبعية التي يتم التقاطها هناك ، لكنها تظل ثابتة حتى لو أزلتها
تلك الحزمة. إذا قمت بمسح node_modules و package-lock.json و
إعادة التثبيت بدون رافعة ، إنه مكسور مرة أخرى. لا بد لي من الخروج من هنا الآن ،
لذلك لا يمكنني قضاء المزيد من الوقت في الوقت الحالي في محاولة التعمق أكثر.
قد يجدها شخص آخر أسرع على أي حال إذا كان أكثر انسجامًا مع
صفقة.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.

مرحبا يا جيمس،

حسنًا ، أفهم ما هو الخطأ في مشروع صفي. لا أعرف كيف أصلحه ، حتى الآن. لكنني سأقوم بإخراج ما أعرفه ، وربما يستطيع شخص ما في بالتأكيد تايبيد مساعدتك.

يتم تثبيت جهاز التوجيه المتفاعل قبل رد الفعل وإعادة الإرسال بواسطة المعمل السابق. كان الإصدار الحالي من جهاز التوجيه التفاعلي (حتى 4 أيام مضت) هو 4.3.1 ، ويعتمد على رد فعل[email protected] . ذلك يعتمد على [email protected]. ولكن ، نظرًا لأن 2.2.5 موجود بالفعل في المستوى الأعلى ، فإنه يضع 3.3.0 في مجلد node_modules تحت رد فعل إعادة. لذا يبدو أن التبعية في @ أنواع / رد فعل إعادة إرسال لأنواع @ / [email protected] لا تجدها لأنها ليست في المستوى الأعلى. تلك القواعد التي لم أتعمق فيها بعد ، ولكن قد يتمكن شخص آخر من تثبيت ذلك على الفور.

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

السؤال ذو الصلة: كيف يُفترض بنا أن نعرف أي إصدار من @ types / response-redux خرائط إلى أي إصدار من رد الفعل والإعادة؟ نظرًا لأن الأرقام لا تصطف ، فقد فقدت هناك.

لقد قمت بعمل علاقات عامة لإصلاح هذه المشكلة رقم 34090

ألا يجب إعادة فتح هذه المشكلة لأن المشكلة الأساسية لم يتم إصلاحها بعد مع الإصدار 7.0.5؟
(بدون إضافة @ type / hoist-non-response-statics + hoist-non-response-statics إلى devDependencies)

يوافق 100٪ على أنه لا ينبغي إغلاق هذا ، ولا يزال معطلاً ما لم تضيف إلى devDependancies يدويًا

لقد قدمت الإصلاح المناسب الذي يبدو أن الناس هنا تجاهله منذ البداية: # 34406

الآن بعد أن تم دمج العلاقات العامة ، يجب على أنواع رد الفعل والإعادة تحديث الاعتماد على احصائيات الرفع-عدم التفاعل؟

أنا اعتقد ذلك. لكن أعتقد أنه يمكنك التخلص من التبعية (إلغاء تثبيتها) وإعادة إضافتها


من: Maurice [email protected]
تاريخ الإرسال: الخميس 4 أبريل 2019 الساعة 3:53:32 مساءً
إلى: DefinitelyTyped / DefinitelyTyped
نسخة إلى: wolfy1339 ؛ كتيب
الموضوع: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / reaction-redux] ليس لدى "hoist-non-reaction-statics" عضو مُصدَّر "NonReactStatics" (# 33690)

الآن بعد أن تم دمج العلاقات العامة ، يجب على أنواع رد الفعل والإعادة تحديث الاعتماد على احصائيات الرفع-عدم التفاعل؟

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرةً ، أو قم بعرضه على GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 ، أو كتم صوت سلسلة المحادثات https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrUks5jUxBvd .

تقصد رد الفعل - إعادة الكتابة؟ سأحاول ذلك.

@ wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406 لا يبدو أنه يصلح المشكلة بالنسبة لي. أعتقد أن هذا بسبب تثبيت hoist-non-react-statics داخل @types/hoist-non-react-statics ( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics ) ، لذلك لا يزال TS يستخدم الأنواع من إصدار الجذر الخاص بي ( node_modules/hoist-non-react-statics ).

في هذه المرحلة كان الأمر يستحق المحاولة. هل من احد اخر لديه فكرة؟

weswigham هل يمكنك إعادة فتح هذه المشكلة؟

واجهت مشكلة مماثلة - أدى استخدام الغزل بدلاً من npm لتثبيت التبعيات إلى حل مشكلتي. النشر كملاحظة جانبية لأنه ربما يمكنك أن تجربها كحل بديل.

@ alan-mroczek نحن نستخدم خيوط الغزل لذلك لا هذا لا يساعد. يجب أن يكون هناك شيء آخر يلعب هنا. (ملف قفل؟)

لا أعرف ما إذا كنت أفهم المشكلة بالضبط ، ولكن الحل الذي نجح معي مع الغزل كان إضافة حقل دقة إلى package.json.

"resolutions": {
  "hoist-non-react-statics": ">=3.3.0"
}

لا تزال هذه المشكلة نشطة مقابل "@types/react-redux": "7.0.8", وإعداد "الحلول" ليس حلاً شاملاً لأن "الحلول" لا تعمل في monorepo (مساحات عمل الخيوط)

ولا أتوقع أن يكون الحل على أي حال. في رأيي ، يجب أن تعمل حزمة

هل يمكن أن يكون حل هذه المحنة برمتها هو إضافتها إلى تبعية الأقران؟ من المؤكد أنها ليست مضمونة ، ولكنها الطريقة الوحيدة للتأكد من أن الكتابة المطبوعة تعثر على التبعية المطلوبة

احصل على Outlook لنظام Android https://aka.ms/ghei36


من: Maurice [email protected]
تاريخ الإرسال: الاثنين 29 أبريل 2019 الساعة 12:30:06 مساءً
إلى: DefinitelyTyped / DefinitelyTyped
نسخة إلى: wolfy1339 ؛ يذكر
الموضوع: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / reaction-redux] ليس لدى "hoist-non-reaction-statics" عضو مُصدَّر "NonReactStatics" (# 33690)

ولا أتوقع أن يكون الحل على أي حال. في رأيي ، يجب أن تعمل حزمةtypes https://github.com/types بعد تثبيتها "فقط"

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 ، أو كتم صوت السلسلة https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHATFLPS .

بعد تجربة العديد من الأشياء ، لا يزال الرجوع إلى الإصدار @ types / reaction-redux 7.0.1 هو الحل الوحيد الذي يعمل في الوقت الحالي.

نفس الشئ لى ! لكنني آمل أن يأتي الإصلاح الحقيقي يومًا ما (الحفاظ على هذه التبعية القديمة أمر غريب!).

أعتقد أننا بحاجة إلى القيام بنفس الشيء مثل # 34406 في كتابات رد الفعل والإعادة ، وإضافة تبعية مباشرة على hoist-non-react-statics ، لأن NPM & Yarn لن يضع بالضرورة الإصدار "الصحيح" من hoist-non-react-statics في الدليل الأعلى من @types/react-redux (والذي سيتسبب في قيام TS بجلب الإصدار index.d.ts المضمن من الإصدار

هذا حل رائع حقًا (ويمكن تخفيفه نظريًا إذا سمحت لنا TypeScript باستيراد @types/hoist-non-react-statics/index.d.ts مباشرة ، لكنني لا أرى أي بدائل معقولة (وبشكل أساسي أي شخص آخر يعتمد على @types/hoist-non-react-statics سيحتاج إلى فعل الشيء نفسه)

أعتقد أننا بحاجة إلى القيام بنفس الشيء مثل # 34406 في كتابات رد الفعل والإعادة ، وإضافة تبعية مباشرة على hoist-non-react-statics ، لأن NPM & Yarn لن يضع بالضرورة الإصدار "الصحيح" من hoist-non-react-statics في الدليل الأعلى من @types/react-redux (والذي سيتسبب في قيام TS بجلب الإصدار index.d.ts المضمن من الإصدار

هذا حل رائع حقًا (ويمكن تخفيفه نظريًا إذا سمحت لنا TypeScript باستيراد @types/hoist-non-react-statics/index.d.ts مباشرة ، لكنني لا أرى أي بدائل معقولة (وبشكل أساسي أي شخص آخر يعتمد على @types/hoist-non-react-statics سيحتاج إلى فعل الشيء نفسه)

ماذا عن الاستيراد من "../hoist-non-react-statics"؟
بقدر ما أرى الحزمة "@ types / hoist-non-reaction-statics" يتم تثبيتها تلقائيًا عند تثبيت "@ types / reaction-redux" ، لذلك لن يكون هناك خطر فقدها.
لقد أرفقت ملفين لإظهار الحل المناسب لي.

hoist-non-response-statics_index.d.txt
رد فعل redux_index.d.txt

نظرًا للطريقة التي تعمل بها npm ، لا يمكننا ضمان أن تكون كتابات hoist-non-react-statics في دليل شقيق react-redux . اعتمادًا على التبعيات الأخرى التي قام المستخدم بتثبيتها ، يمكن أن يكون الجد ، أو قد يكون طفلًا.

لا يزال هذا مكسورًا بالنسبة لي. بلدي export default connect()(MyComponent) يعطى ل any نوع. بالعودة إلى 7.0.1 يصلح هذا الجزء ... يبدو أن هذا تغيير في 7.0.2 .

لا يزال يحدث مع 7.1.0 والتراجع إلى 7.0.1 ليس خيارًا بالنسبة لنا لأننا نحتاج TS 3.5.2 (مع TS 3.4.5 ، 7.0.1 يعمل) وهذا يلقي الخطأ التالي مع 7.0.1 :

node_modules/@types/react-redux/index.d.ts:109:84 - error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.

لذا ، أي .. الحلول؟ لست خبيرًا في هذا الموضوع ، لذا لا يمكنني فهم ما يجب أن أفعله بهذا الموضوع.

تضمين التغريدة

حسنًا ، قررنا أن نلتزم بنسخة معدلة من أنواع react-redux في الريبو الخاص بنا. (بعد اتخاذ قرار بعدم استخدام حزمة التصحيح . والتي يمكن أن تكون حلاً مؤقتًا جيدًا إذا كنت لا تمانع في حل الخيط اللازم.)

حيث نقوم ببساطة بتغيير السطر التالي:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {

إلى:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {

نظرًا لأننا لا نستخدم الإحصائيات ، فهذا لا يؤذينا ولكن هذا بالطبع قد لا يكون حلاً مقبولاً للجميع.

رائع! ذهبت مع اقتراح alessioprestileo للتغيير

import hoistNonReactStatics = require('hoist-non-react-statics');

ل

import { NonReactStatics } from '../hoist-non-react-statics';

وتغيير المكالمة إلى

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {

وقد نجح الأمر بالنسبة لي أيضًا ، فقد كان في الواقع يتجه للتحديث فقط عندما رأيت إجابتك: د

فهل ستنشر إصدارًا جديدًا في npm مع بعض الإصلاحات؟ :)

هل يمكننا فقط جعل المشرفين على أحصائيات الرفع غير المتفاعلة للتحقق من الكتابة مرة أخرى في الريبو الخاص بهم؟

إذن .. هل هذا يحدث أم يجب أن أمضي قدما في تغيير مفترق على ذلك؟

أهلا. قمنا أيضًا بالتحديث إلى أحدث إصدار 7.1.1 من @types/react-redux مع react-redux : 7.1.0 ونرى هذا الخطأ في npm. أنا في حيرة من أمري لأن جميع التذاكر التي تشير إلى هذا مغلقة.
يؤدي الرجوع إلى إصدار 7.0.1 حل هذه المشكلة ولكنه يتسبب في مشكلة جديدة إذا استخدمنا أحدث إصدار من الأنواع 3.5.x :

/.../node_modules/@types/react-redux/index.d.ts(109,84): error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
    Type 'Matching<TInjectedProps, GetProps<C>>' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
      Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : TInjectedProps[P] : GetProps<C>[P]' is not assignable to type 'TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : never'.

مما يجعلها حلًا حزينًا نوعًا ما.

أحدث إصدار (على سبيل المثال ، 7.1.1 ) من @types/react-redux لا يستخدم Shared<TInjectedProps, GetProps<C>> كقيد (على وجه التحديد بسبب هذا الإصلاح في TS الذي أشار إلى أن القيد غير صحيح) - لديك مكتبة أخرى تفرض تضمين نسخة متداخلة من إصدار قديم من أنواع react-redux ، على ما أعتقد.

لذلك ، لدي الحل. يطلق عليه "حزمة التصحيح".

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

أستطيع أن أؤكد أن تثبيت hoist-non-react-statics يحل هذا الخطأ لـ react-redux 7.1.0 و @types/react-redux 7.1.1 أنا أستخدم Typescript 3.4.3 أيضًا.

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

أواجه نفس المشكلة مثل jalMogo

ما زلت أرى هذه المشكلة.

jalMogo بقدر ما أفهمها ، هذه ليست مشكلة في إعادة التشغيل ، ولكن مع

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

وما زالت هذه المسألة.

+1

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

Namespace '"/ home / myhome / Projects / node_modules / hoist-non-reaction-statics / index" "ليس له عضو مُصدر" NonReactStatics ".ts (2694)

هذه بالتأكيد قضية من جانبهم. الحل: يجب أن يتم إدراج @types/hoist-non-react-statics كتبعية في مشروعك حتى يعمل

لكن لدي ذلك ، وما زلت أحصل على المشكلة:
"التبعيات": {
...
"@ types / hoist-non-reaction-statics": "^ 3.3.1"،

موجود في مجموعتي. json

خطأي. تحتاج hoist-non-react-statics


من: Robert Rehammar [email protected]
تاريخ الإرسال: الأحد ، 20 أكتوبر 2019 ، الساعة 1:50:51 صباحًا
إلى: DefinitelyTyped / [email protected]
نسخة إلى: wolfy1339 [email protected] ؛ أذكر [email protected]
الموضوع: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / reaction-redux] ليس لدى "hoist-non-reaction-statics" عضو مُصدَّر "NonReactStatics" (# 33690)

لكن لدي ذلك ، وما زلت أحصل على المشكلة:
"التبعيات": {
...
"@ types / hoist-non-reaction-statics": "^ 3.3.1"،

موجود في مجموعتي. json

-
أنت تتلقى هذا لأنه تم ذكرك.
الرد على هذا البريد الإلكتروني مباشرة، مشاهدته على جيثب https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690؟email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 ، أو إلغاء الاشتراك https://github.com/notifications/unsubscribe- المصادقة / ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ .

لدي "hoist-non-react-statics": "^3.3.0" في تبعياتي و "@types/hoist-non-react-statics": "^3.3.1" في تبعيات التطوير الخاصة بي وما زلت أعاني من المشكلة أيضًا. لقد أكدت أنه لا توجد مكتبات أخرى تسحب الإصدارات القديمة من هذه أيضًا.

لقد حاولت أيضًا بدون تثبيت "@types/hoist-non-react-statics" (لأنه من خلال ما أفهمه ، يجب أن تحتوي الحزمة الرئيسية على كتابات مدرجة بالفعل) ، ولكن مع نفس النتيجة.

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

أنا آسف ، المشروع الذي أواجهه ليس مفتوح المصدر وليس لدي الوقت لإنشاء مشروع منفصل لعرضه. ما لاحظته مع ذلك هو أن المشروع لم يواجه مشاكل حتى قمت بتمكين allowJs: true في tsconfig.json . بدون هذا الإعداد ، كل شيء يعمل بشكل جيد. آمل أن يساعد.

يبدو أن إضافة "احصائيات الرفع غير المتفاعل" قد أصلحتها هنا.

تقوم repro فقط بتثبيت @ types / reaction-redux ثم استيراد أي شيء في رد فعل-redux في ملف tsx.

تتمثل إحدى طرق إصلاح هذه المشكلة في إضافة "skipLibCheck": صحيح في tsconfig.json. إنه ليس الحل الأفضل ، ولكن كحل بديل ، يمكن استخدامه.

أعتقد أن هذا يحدث لأن الكتابة المطبوعة تحل الأشياء بهذا الترتيب:

  1. package/package.json[types]
  2. @types/package
  3. package (كل شيء باستثناء الحقل types )

لماذا يفعل ذلك هو لغز بالنسبة لي ، ولكن تم توثيقه هنا: https://www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules

على سبيل المثال ، إذا كان لديك بنية الدليل التالية:

node_modules/
  @types/
    hoist-non-react-statics/ (3.3.0)
    react-redux/
      node_modules/
        hoist-non-react-statics/ (3.3.0)

  hoist-non-react-statics/
    package.json (2.0, which has a types field!!!)
    index.d.ts

ثم ستعمل الكتابة المطبوعة على ما يلي:

  1. فشل في الحصول على أنواع من node_modules/@types/react-redux/node_modules/hoist-non-react-statics لأن الإصدار الحالي لا يتضمن الأنواع
  2. تنجح في العثور على أنواع من node_modules/hoist-non-react-statics (الإصدار القديم) لأن package.json يحتوي على حقل types

ومن ثم كما ذكر الآخرون ، يمكنك حل المشكلة عن طريق إضافة تبعية في مشروعك على آخر hoist-non-react-statics ، لأنه لا يحتوي على حقل types في package.json لذلك يجعل الخطوة 2 تفشل.

ومن المفارقات ، أنه يمكنك أيضًا إصلاحها عن طريق إضافة تبعية في مشروعك على hoist-non-react-statics ، على سبيل المثال 3.0.0. يعمل هذا لأنه يفرض تثبيت الإصدار الصحيح (3.3.0) في node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics ، حيث تم حله مسبقًا: confounded:

إذن لدي سؤالان:

  1. لماذا تتعامل الطباعة النصية مع الحقل types بشكل خاص بهذه الطريقة ، وهي تأتي قبل أو بعد حزم @types اعتمادًا على ما إذا كان الحقل t types مستخدمًا أم لا؟
  2. إذا كان hoist-non-react-statics قد بنى أنواعًا ذات مرة ، فلماذا ارتدوا إلى هنا؟ لن تكون هذه مشكلة إذا كانت الأنواع مضمنة في الحزمة. لا أستطيع أن أرى كيف يمكن للغزل / NPM التعامل بشكل صحيح مع الحزم المنفصلة للرموز والأنواع التي يرونها لأنهم لا يعرفون كيفية اتصال الاثنين.

يبدو أن هذه المشكلة عادت إلى الظهور مع أحدث إصدارات الحزمة ، مثل:

[email protected]
@types/[email protected]

تمكنت من حل هذا عن طريق تضمين الحزم التالية يدويًا في package.json :

[email protected]
@types/[email protected]

نظرًا لأن الحزم hoist-non-react-statics بعد npm install الأولي الخاصة بي ، كانت هناك نسخ مكررة من هذه الحزم في مجلد node_modules . تشغيل npm dedupe أزال ذلك.

أتمنى أن يساعد ذلك أي شخص آخر يأتي معك!

لدي هذه المشكلة أيضًا - ولله الحمد لحلDannyDelott !

لدي هذه المشكلة أيضًا - ولله الحمد لحلDannyDelott !

الحل الأسرع في الوقت الحالي دون تلويث package.json بالاعتماديات التي لا تحتاجها بشكل مباشر هو إزالة @types/react-redux

npm remove @types/react-redux

بمجرد أن نرى أن هذه المشكلة قد تم حلها ، يمكننا عندئذٍ إعادتها

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

ما زلت ألاحظ هذه المشكلة.

لأي شخص يرغب في الاستمرار في التطوير أثناء تشغيل الإصلاح المستقر ، يمكنك استخدام محرف الكتابة أدناه:

// [your-src-folder]/types/hoist-non-react-statics.d.ts

declare module 'hoist-non-react-statics' {
  type NonReactStatics<T> = any;
  export { NonReactStatics }
}

هذا ليس الحل المثالي ، ولكنه على الأقل مفيد لتجنب أخطاء الإنشاء مع TS

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