Storybook: TS1086: لا يمكن التصريح عن موصل في سياق محيط

تم إنشاؤها على ١٥ يناير ٢٠٢٠  ·  55تعليقات  ·  مصدر: storybookjs/storybook

وصف الخطأ
تمت الترقية إلى 5.3.3 الآن وفشل إصدار Angular الخاص بنا في ما يلي:

[ng]
[ng] ERROR in ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot be declared in an ambient context.
[ng]
[ng] 25     get hasTransport(): boolean;
[ng]            ~~~~~~~~~~~~

من موقع google السريع ، يبدو أن مستودعات إعادة الشراء الأخرى تواجه نفس المشكلة بسبب استخدام TypeScript 3.7.0 - لكن Angular يقتصر على <3.5.0

أخطاء مماثلة
https://github.com/nestjs/nest/issues/3513
https://github.com/googleapis/node-gtoken/issues/244

أعتقد أن التغيير الفاصل يأتي من TypeScript مباشرة https://github.com/microsoft/TypeScript/issues/33939 - ولكن حتى يتم إصدار الإصلاح ، سيحتاج الملف index.d.ts إلى التجديد باستخدام npm i typescript@~3.6.0 (استبدل ^ بـ ~ )

النظام:

    OS: macOS Mojave 10.14.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
  Binaries:
    Node: 12.14.1 - /usr/local/bin/node
    npm: 6.13.4 - /usr/local/bin/npm
  Browsers:
    Chrome: 79.0.3945.117
    Safari: 13.0.4
  npmPackages:
    @storybook/addon-actions: ^5.3.3 => 5.3.3
    @storybook/addon-knobs: ^5.3.3 => 5.3.3
    @storybook/addon-links: ^5.3.3 => 5.3.3
    @storybook/addon-notes: ^5.3.3 => 5.3.3
    @storybook/addon-storyshots: ^5.3.3 => 5.3.3
    @storybook/addons: ^5.3.3 => 5.3.3
    @storybook/angular: ^5.3.3 => 5.3.3
    @storybook/cli: ^5.3.3 => 5.3.3
angular bug has workaround typescript

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

جرب " skipLibCheck": صحيح ، داخل tsconfig.json على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

أتمنى أنها تساعدك !!

ال 55 كومينتر

لقد واجهت طعنة في إجراء الترقية لكنني فقدت في بنية الحزمة 😅 - النتيجة النهائية (بعد إنشاء ملفات dist) يجب أن تجعل @storybook/channels/dist/index.d.ts:25 go

من عند

get hasTransport(): boolean;

إلى

readonly hasTransport: boolean;

كان لي نفس القضية. يمكنني حلها عن طريق تحديث حزمة Typescript إلى أحدث إصدار

كان لي نفس القضية. يمكنني حلها عن طريق تحديث حزمة Typescript إلى أحدث إصدار

siropo ما الإصدار؟ أستخدم الزاوية 8.3.20 و 3.5.3 المطبوعة. وحصلت على نفس الخطأ عند محاولة بناء المشروع.

IsharaMadawa "

IsharaMadawa "

siropo هل يمكنك إسقاط package.json هنا؟

IsharaMadawa لماذا؟ فقط حاول تحديث الإصدار المطبوع عليه وتحقق مما إذا كان يعمل

إذا كنت تقوم بتشغيل إصدار أقدم من Angular ، على سبيل المثال 8.1.0 ، فسترى الخطأ التالي

The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.

إذا كنت تقوم بتشغيل إصدار أقدم من Angular ، على سبيل المثال 8.1.0 ، فسترى الخطأ التالي

The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.

نعم. تلقيت هذا الخطأ واضطررت إلى تحديث الزاوية أيضًا

IsharaMadawa هل قمت بالترقية إلى إصدار 9 RC الزاوي؟
أرى الخطأ أدناه
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
في الزاوية 8.2.3 كذلك

هذا أيضًا ينكسر بالنسبة لنا باستخدام أحدث إصدار من Angular 8.2.x: /

image

لدي الإصدار 3.7.4 من Typescript وإصدار 8.3.21 من Angular وأنا أتلقى نفس الرسالة! الرجاء المساعدة! :-)

التحديث باستخدام ng update --next @angular/cli --force إلى 9.0.0-rc.12 والذي يستخدم typescript @ "3.7.5" ، ساعد في هذه المشكلة بالفعل.

الحصول على نفس المشكلة مع typescript 3.7.5 و storybook/react 5.3.9

من التحديث --next @ angular / cli --force
npm install typecript @ الأحدث

؛)

ng update --next @ angular / cli --force
npm install typecript @ الأحدث

؛)
عملت ، شكرا لك سنارجول.

تم التأكيد ، بالترقية إلى Angular 9 (وبالامتداد Typescript 3.7.5) ، تم حل هذه المشكلة

لا تعد الترقية إلى TypeScript 3.7.x خيارًا رائعًا لمشرفي المكتبة. هذا يعني أن التغيير من 3.6 إلى 3.7 (تغيير جذري تقنيًا) ينتقل إلى عملائنا ولا يمكننا افتراض أنه يمكنهم ترقية TypeScript بسهولة أيضًا.

ndelangen أعتقد أنه يمكن تصحيح هذا من خلال تغيير https://github.com/storybookjs/storybook/blob/next/package.json#L218 إلى typescript@~3.6.0 ، نظرًا لأن typescript@^3.4.0 يتحول إلى 3.7.5 الآن. ثم يمكننا حفظ التحديث 3.7 حتى الإصدار 6.0 من Storybook لأنه في الواقع تغيير جذري.

ما رأيك؟

تبدو وكأنها خطةlychyi

تريد فتح PR مقابل الفرع next ؟

سنقوم باختياره في master وإصداره كرقعة shilman

لك ذالك!

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

هل يجب أن يستخدم Storybook 6 TypeScript 3.7 لأنه سيتم تقديمه كتغيير جذري على أي حال؟ إذا كان الأمر كذلك ، أعتقد أنه يجب تغيير هذا في master وليس next . PR # 9826 الحالي هو مقابل next لكن يمكنني إعادة صياغة ذلك للإشارة إلى master بدلاً من ذلك ، أخبرني.

وبالتالي ، إذا لم يكن TS 3.7+ مهمًا حقًا ، فهل يمكن ترقيته كجزء من Storybook 7 أو ما بعده أيضًا؟

يعمل ليlychyi. شكرًا جزيلاً على الاهتمام بهذا الأمر والتفكير فيه جيدًا !!! 💯

إعادة: 3.7 في Storybook 6.0. لست متأكدًا مما إذا كان الإصدار 3.7 ضروريًا ، فسأسمح لأحد الرفاق المطبوعين بالتحدث إلى هذا ndelangenkroedergaetanmaisse

FWIW ، next يستخدم بالفعل 3.7 ، والتي من حيث ميزتها ، لديها ميزات أنيقة حقًا مثل التسلسل الاختياري ( foo?.bar ) وعامل الاندماج الفارغ ( foo ?? bar ). تغيير هذا فقط بـ master لـ Storybook 5.3.x سيكون أقل إزعاج للوضع الحالي للأشياء.

أيضًا ، لقد تعلمت للتو أن انبعاث getter / setter ليس سوى تغيير جذري لـ "typescript": "<=3.5" . تم إثبات هذه الميزة في المستقبل TS 3.6 كسر التغييرات في TS3.6 ليس سيئًا تقريبًا.

ومع ذلك ، فإن استخدام TS3.7 لا يزال يؤذي الأشخاص الذين لم يتمكنوا من الترقية إلى 9.x حتى الآن. الزاوية 8.x الزاوي مقفلة عند ~3.5.3 .

وبالتالي فإن المقايضة الرئيسية I اقترح في وزنها على هي: _ "سنكون مرتاحين قائلا ان قصة الأطفال 6 غير متوافق مع الزاوي 8 حتى نتمكن من الاستفادة من أحدث وأكبر أن نسخة مطبوعة على الآلة الكاتبة 3.7 أن العرض؟" _

lychyi ملخص رائع. شعور القناة الهضمية غير المطلع يقول بالتأكيد 3.7 مقابل 6.0. اغتنم المستقبل !! 😈

lychyi شكرا على العمل الرائع! 👏 👏

هل سنكون مرتاحين للقول إن Storybook 6 غير متوافق مع Angular 8 حتى نتمكن من الاستفادة من أحدث وأكبر ما يقدمه TypeScript 3.7؟

بالنسبة لي ، من الصعب بعض الشيء جعل SB 6 غير متوافق مع Angular <9 لأن Angular 9 خارج لبضعة أيام فقط. العديد من الحزم ليست جاهزة لهذا الإصدار الجديد ، والذي يعتبر بالنسبة إلى Angular newbie إصدارًا رئيسيًا حقيقيًا يقدم خط تجميع وتصيير جديدًا ، وبالتالي لا يمكن إجراء الترحيل إلى Angular 9 لبعض مشاريع monorepo الكبيرة (مثل المشروع الذي أعمل معه في العمل).

نظرًا لأن التحسينات التي تجلبها TS 3.7 لا تُستخدم حاليًا على نطاق واسع في SB monorepo ، يمكننا ربما الاحتفاظ بـ TS 3.6 (لذا دمج العلاقات العامة في next + اختيار الكرز على master ) حتى نجد طريقة للعمل حول هذه القضية. ربما مشروع لإلقاء نظرة على: https://github.com/sandersn/downlevel-dts يسمح بإنشاء ملفات تعريف قديمة بناءً على ملفات جديدة 🤷‍♂

gaetanmaisse أنت على اتصال أكثر بكثير سأوافق على حكمك على هذا. ومع ذلك ، أود أن أشير إلى بعض الأشياء:
1) التقدير الحالي لـ SB6 هو نهاية أبريل وبحلول ذلك الوقت سيكون NG9 قبل بضعة أشهر
2) إذا كان هذا بالفعل تغييرًا مفاجئًا ولم نقم بتغييره الآن ، فسنكون قادرين على تغييره في المرة القادمة 7.0 ، والتي من المحتمل أن تكون سنة.

بالطبع ، إذا تمكنا من إصلاحه بـ 3.6 فهذا أفضل! داخل Storybook ، سيكون من الرائع البدء في استخدام التسلسل الاختياري وما إلى ذلك ، أفترض أن هذا وثيق الصلة بتبعية dev وليس التبعية.

@ shilman أنا أتفق معك تمامًا 💯 وأشعر بخيبة أمل شديدة لأنني أضطر إلى الاحتفاظ بـ 3.6 حتى SB7.

نظرًا لأن SB6 لا يزال في مرحلة ألفا لأسابيع ، أعتقد أنه يجب أن نقول إن هدفنا هو الحصول على TS 3.7+ في SB6 وإيجاد طريقة للاستمرار في التوافق مع Angular <= 8. وإذا لم يكن ذلك ممكنًا ، فراجع نهاية مارس أو بداية Apris كيف تم اعتماد NG9 ومناقشة حول إسقاط دعم Angular <= 8 الدعم.

gaetanmaisse أنا ألعب بفرع للاستفادة من المستوى الأدنى dts. في البداية رفضته لأنه ليس جزءًا محفوظًا من TypeScript ولكن بعد التفكير فيه قليلاً ، قد يكون خيارًا قابلاً للتطبيق للسماح لنا باستخدام TS3.7 + ولا يزال متوافقًا مع مستخدمي <= TS3.5. أعطني القليل للتحقق من التغييرات وبعد ذلك يمكننا معرفة ما إذا كان الأمر يستحق الصيانة. سكربتات الإنشاء منظمة جدًا لذا لا ينبغي أن يكون ذلك صعبًا للغاية.

gaetanmaisse PR

شكرا على الفرصة للمساهمة!

التحديث باستخدام ng update --next @angular/cli --force إلى 9.0.0-rc.12 والذي يستخدم typescript @ "3.7.5" ، ساعد في هذه المشكلة بالفعل.

هذا حل مشكلتي أيضا! شكرا جزيلا!

حسنًا ، ولكن كيف يمكن حل هذه المشكلة دون التحديث المطبوع؟

ColCh نحن نعمل عليه https://github.com/storybookjs/storybook/pull/9847 يجب أن يكون متاحًا قريبًا! هههههههههههههه

شكرا لك! يبدو أن العلاقات العامة تصلح المشكلة.

طيب انتظر بصبر :) لا اسرع

واو كان ذلك سريعا!

ولكن ، gaetanmaisse ، هل نتوقع أن يتم نقل هذا الالتزام إلى الإصدار الخامس؟ سيكون هذا لطيفا

تضمين التغريدة نحن نختبر أن كل شيء على ما يرام في الإصدار 6.0.0-alpha الأحدث ومن ثم سنصدره في إصدار 5.3.x

حسنا. شكرا 🙂

لدي التكوين التالي وما زلت أتلقى الخطأ:

""

 @angular/cli": "7.3.8",
"@angular/compiler-cli": "7.2.8",
"@angular/language-service": "7.2.3",
"@babel/core": "^7.7.7",
"@babel/preset-env": "^7.8.4",
"@babel/preset-typescript": "^7.8.3",
"@ngx-translate/core": "11.0.0",
"@storybook/addon-actions": "5.3.13",
"@storybook/addon-links": "5.3.13",
"@storybook/addon-notes": "5.3.13",
"@storybook/addon-storyshots": "^5.3.13",
"@storybook/addon-viewport": "^5.3.13",
"@storybook/addons": "^5.3.13",
"@storybook/angular": "5.3.13",
 "typescript": "^3.2.4"`

ng build --prod
ERROR in node_modules/@storybook/channels/dist/index.d.ts(25,9): error TS1086: An accessor cannot be declared in an ambient context.

@ cnestor1 ، لم يتم إصدار 5.3.x حتى الآن ، يجب أن يكون في الإصدار التالي 😉

Thx ، لقد أسأت الفهم واعتقدت أنه كان كذلك.
ما هو الوقت المقدر للوصول للإصدار القادم؟
هل هناك أيضًا طريقة لاستخدام إصدار أقدم من Storybook للتحايل على المشكلة حتى يتم إصلاحها؟
لم يتم فحص Angular 9 في شركتي ، لذلك علي الانتظار قليلاً قبل أن أتمكن من الترقية.

@ cnestor1 ETA في الأيام الخمسة القادمة

لقد قمت بحل هذا الخطأ مؤقتًا من خلال زيارة ملف nodemodules (ملف .d.ts) المذكور في الخطأ ثم حفظه عن طريق ctrl + s سيؤدي ذلك إلى حل الخطأ حيث سيتم تجميع التعليمات البرمجية الخاصة بك ولكن الخطأ سيظل موجودًا

ابن اللذين!! لقد أصدرت للتو https://github.com/storybookjs/storybook/releases/tag/v5.3.14 يحتوي على PR # 9847 يشير إلى هذه المشكلة. قم بالترقية اليوم لتجربتها!

إغلاق هذه القضية. يُرجى إعادة الفتح إذا كنت تعتقد أنه لا يزال هناك المزيد لتفعله.

الحصول على نفس المشكلة :)

rohittagadiya هل قمت بالتحديث إلى الأحدث؟

جرب " skipLibCheck": صحيح ، داخل tsconfig.json على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

أتمنى أنها تساعدك !!

جرب " skipLibCheck": صحيح ، داخل tsconfig.json ، على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

انا آمل ان تساعدك !!

يعمل !!!! شكر

جرب " skipLibCheck": صحيح ، داخل tsconfig.json على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

أتمنى أنها تساعدك !!

يعمل بشكل جيد ، شكرًا <3

إضافة "skipLibCheck": صحيح ، في compilerOptions داخل الملف عملت tsconfig.json بالنسبة لي. شكرا جزيلا لك .

الرنين - skipLibCheck: true يعمل بشكل رائع. هذا أمر رائع بالنسبة لأولئك الذين لا يستطيعون المخاطرة بـ ng update منتصف دورة QA. شكر!

جرب " skipLibCheck": صحيح ، داخل tsconfig.json على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

أتمنى أنها تساعدك !!

شكرا لك. يعمل بشكل جيد.

جرب " skipLibCheck": صحيح ، داخل tsconfig.json على سبيل المثال.

"compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    **"skipLibCheck": true,**
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },

أتمنى أنها تساعدك !!

وشكرا لكم <3

تغيير الإصدار إلى:
"ngx-swiper-wrapper": "~ 8.0.1"

يمكن أن تحل هذه المشكلة

من التحديث --next @ angular / cli --force
npm install typecript @ الأحدث

؛)

أنا باستخدام الزاوية 5 هل من الممكن استخدام تحميل ملف ngx
errr

تحديث @ angular-devkit / build-angular

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