Definitelytyped: @ type / node ، لا يمكن التحويل البرمجي: node_modules/@types/node/index.d.ts (50،14): خطأ TS2687: يجب أن تحتوي كافة تعريفات "المكرر" على معدلات متطابقة.

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

منذ 7.0.8 ، عند استخدام

node_modules/@types/node/index.d.ts (50،14): خطأ TS2687: يجب أن تحتوي كافة إعلانات "المكرر" على معدلات متطابقة.

لدينا tsconfig:

{ "compilerOptions": { "target": "es5", "module": "amd", "sourceMap": true, "strictNullChecks": true, "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": false, "noUnusedParameters": false, "noUnusedLocals": true, "experimentalDecorators": false, "emitDecoratorMetadata": false, "removeComments": true, "outFile": "../js/ts.js" }, "exclude": [ "node_modules", "../node_modules", "../../node_modules" ] }

تقع التعارضات بين @ types / node line 50 و @ types / core-js ، السطر 504 (مكرر: الرمز)

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

harrietsCreativeDabblets ، يجب أن تكون قادرًا على تضمين ما يلي في اعتمادات devDependent لمشروعك (في حدود ng-start/package.json ):

"@types/node": "7.0.7"

نظرًا لأن هذا يتوافق مع semver jspm-config فإنه سيضمن تأمين إصدارك من @types/node على 7.0.7 . لاحظ أنه إذا لم يرضي هذا jspm-config semver ، فسوف ينتهي بك الأمر بتعريفات مكررة.

تأكد من حذف node_modules و npm i بعد تعديل حزمة مشاريعك. json.

ال 41 كومينتر

نفس المشكلة بالنسبة لي أيضا. تسكونفيغ:
{ "compilerOptions": { "allowJs": false, "target": "es5", "module": "commonjs", "moduleResolution": "node", "allowSyntheticDefaultImports": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "noEmitHelpers": true, "noUnusedLocals": true, "noImplicitReturns": true, "noUnusedParameters": true, "baseUrl": ".", "paths": { "app": [ "src/app" ], "app/*": [ "src/app/*" ], "core": [ "src/core" ], "core/*": [ "src/core/*" ] }, "typeRoots": [ "node_modules/@types" ] }, "compileOnSave": false, "buildOnSave": false, "exclude": [ "node_modules" ] }

من الواضح أن المُعدِّل readonly قبل iterator كان خطأ. أو core-js خاطئ.

نفس المشكلة هنا ، تعطلت جميع تصميماتي بين عشية وضحاها.
لدينا tsconfig

{
  "compilerOptions": {
    "target": "ES5",
    "sourceMap": true,
    "typeRoots": [ "node_modules/@types/" ],
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "declaration": false,
    "watch": true
  },
  "compileOnSave": true,
  "include": [
    "src/**/*"
  ],
  "exclude": [
    ".vscode",
    "node_modules",
    "dist"
  ]
}

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

لدينا أيضًا نفس المشكلة. كسر كل شيء.

+1 نفس المشكلة.

بالضبط نفس الشيء هنا.

كذلك هنا،
مثبتة مؤقتًا على 7.0.7.

+1 نفسه

لدي نفس المشكلة.
العودة إلى @types/node": "7.0.7" لحل المشكلة

يعمل معي الآن مع إزالة core-js واستخدام @ types / [email protected] و tsconfig: "lib": ["es7"]

كذلك هنا. ارجع مرة أخرى إلى @ types / node ":" 7.0.7 "يعمل على إصلاح المشكلة. تم وضع علامة لتتبع التقدم.

يجب أن يتم إصلاحه بواسطة # 15108. لاحظ أنك قد تحتاج إلى تغيير "lib" في tsconfig الخاص بك لأن أنواع مثل Iterator لم يتم توفيرها بواسطة core-js .

@ andy-ms إلى ماذا تقترح علينا تغيير "lib" إلى؟

baywet ما يجب أن يكون lib يعتمد على مشروعك. على سبيل المثال ، يتم تجميع مشروعي إلى ES5 ولكنه يحتاج إلى core-js لتعويض بعض وظائف ES6. هذا هو lib :

"lib": [
  "es6"
  "dom"
]

قم بإلقاء نظرة على --lib في مستندات خيارات المترجم .

ما هو الملف الذي يجب أن أقوم بتغييره بالضبط من @ types / node ":" 7.0.7 "؟
يكشف بحث الدليل عن أن لديّ 2 من هذه الإدخالات:

image

أيهما أغيره ، أم أغير كليهما؟

كلاهما في node_modules ، لذلك من المفترض أنهما لم يتم تسجيل الوصول ولا يمكن تغييرهما مباشرة. يجب أن تحتوي أداة التثبيت التي تستخدمها (على سبيل المثال npm أو jspm ) على وثائق تصف كيفية تثبيت الحزم وتعيين إصداراتها.
ولكن كما تشير المناقشة أعلاه ، من الأفضل استخدام أحدث الإصدارات من جميع المكتبات ، وتعيين --lib بشكل صحيح في tsconfig.json .

سيكون للتثبيت الصحيح إصدار يحتوي على ^ كأول حرف في package.json (s) للحصول على الأحدث. فيما يتعلق بمشكلاتtypes و libs بشكل عام مثل تلك المذكورة هنا ، بمجرد إصلاحها ، قم أولاً بإزالة جميع أدلة node_modules (مسار المشروع الرئيسي ، مسار العملاء ، وما إلى ذلك) ، ثم قم بتثبيت npm في كل دليل معني ، ثم قم بتشغيل tsc مرة أخرى ( عادةً مع ملف بناء grunt أو ما يعادله) ، للتحقق من كل شيء على ما يرام.
في بيئات ما قبل الإنتاج والإنتاج ، قد يتعين عليك فعل الشيء نفسه.

harrietsCreativeDabblets ، يجب أن تكون قادرًا على تضمين ما يلي في اعتمادات devDependent لمشروعك (في حدود ng-start/package.json ):

"@types/node": "7.0.7"

نظرًا لأن هذا يتوافق مع semver jspm-config فإنه سيضمن تأمين إصدارك من @types/node على 7.0.7 . لاحظ أنه إذا لم يرضي هذا jspm-config semver ، فسوف ينتهي بك الأمر بتعريفات مكررة.

تأكد من حذف node_modules و npm i بعد تعديل حزمة مشاريعك. json.

@ pe8ter شكرا على الدقة. انتهى بي الأمر بالترقية إلى @ types / [email protected] وقمت بإجراء هذه التغييرات في tsconfig.json الخاص بي ، وبالتالي الحفاظ على توافق IE11.

"lib": [
      "dom",
      "dom.iterable",
      "es2015",
      "scripthost"
    ],

نفس المشكلة هنا ؛ تم حلها باستخدام الإصدار 7.0.7 من إصدار أقدم

نفس المشكلة هنا ؛ تم حلها باستخدام الإصدار 7.0.7 من إصدار أقدم

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

loctrice ما هو إصدار TypeScript الخاص بك من node_modules/typescript/package.json وإصدار العقدة من node_modules/@types/node/package.json ؟

الطباعة المطبوعة هي 2.3.4 والعقدة 8.0.5

loctrice لا يمكنني إعادة إنتاج هذا بهذه الإصدارات. أنا في دليل فارغ وقمت فقط بتثبيت هؤلاء. ماذا يوجد في tsconfig ؟ هل يمكنك محاولة الحصول على ريبرو صغير؟
بالمناسبة ، هل تقصد 8.0.50 بدلاً من 8.0.5 ؟ تم الاختبار مع كلا الأمرين على الرغم من عدم حدوث خطأ.

لست متأكدًا مما يجب أن يكون عليه tsconfig. لقد كنت أتعامل مع هذا الأمر بعد الترقية من الكتابة القديمة إلى types لذلك قمت بتغييرها بناءً على المواضيع التي رأيتها ، فقط

{
"compilerOptions": {
"الهدف": "es5"،
"الوحدة النمطية": "النظام" ،
"moduleResolution": "عقدة"،
"sourceMap": خطأ ،
"emitDecoratorMetadata": صحيح ،
"ديكورات تجريبية": صحيح ،
"removeComments": صحيح ،
"noImplicitAny": خطأ ،
"typeRoots": [
"./node_modules/@types"
] ،
"ليب": [
"es2015"،
"es6"،
"دوم" ،
"dom.iterable"
]
} ،

لا يمكنني إعادة إنشاء خطأ مع تلك الإصدارات المثبتة وهذا tsconfig.json .

  • مكدير ريبرو cd repro`
  • الصق هذا المحتوى في tsconfig.json (وأضف النهاية } )
  • npm install @types/[email protected] [email protected]
  • echo "" > a.ts
  • node node_modules/typescript/lib/tsc.js
  • لا خطأ

هذا يساعدني على بدء حل المشاكل. سأبدأ في إضافة كتاباتي واحدة تلو الأخرى لمعرفة مكان المشكلة في مشروع angular2 الخاص بي.

يبدو أن هذا قد يكون بسبب الكتابة الأساسية js و es6 التي قمت بتثبيتها. إذا قمت بإزالة core-js ، فسأحصل على أخطاء من ميزات مثل "Promise is a type" التي أصلحتها بالأمس عن طريق تثبيت إصدار core-js على 0.9.35. ها هي كتاباتي:

تشاي: "^ 4.0.4" ،
core-js: "0.9.35" ،
العقدة: "^ 8.0.50" ،
فتح الطبقات: "^ 4.1.0" ،
systemjs: "^ 0.20.6" ،

يبدو أن التعارض يرجع إلى أنه في core-js على السطر 504 يوجد تعريف لـ iterator: symbol وفي كتابات العقدة في السطر 54 يوجد تعريف readonly iterator: symbol تغيير أي منهما يدويًا إلى مباراة سوف تحصل على مشروعي لتجميع.

أحاول الحصول على تحديث angular2-electron-boilerplate والعمل. سأتعامل مع هذا الخطأ:

node_modules/@types/node/index.d.ts(79,14): error TS2687: All declarations of 'iterator' must have identical modifiers.

79     readonly iterator: symbol;
                ~~~~~~~~
phil<strong i="9">@Loki</strong> ~/d/g/s/g/o/angular2-electron-boilerplate (master) [130]> 
grep -rnE 'iterator:\s+symbol' node_modules/
node_modules//@types/node/index.d.ts:79:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es2015.iterable.d.ts:28:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es6.d.ts:4763:    readonly iterator: symbol;
node_modules//reflect-metadata/Reflect.ts:95:    declare const Symbol: { iterator: symbol, toPrimitive: symbol };

الإصدارات:

philipbel هل

هل هناك حل دائم للمشكلة التي يصفها loctrice ؟

لا ، لم أفعل.

في 2 يناير 2018 ، الساعة 2:11 ، كتب Smackzter [email protected] :

philipbel هل

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

philipbel يبدو أن المشكلة في reflect-metadata . من الغريب كيف انتهى الأمر بالتجميع باستخدام Reflect.ts بدلاً من Reflect.d.ts .

loctrice عن طريق تحرير core-js يدويًا ، يمكن تجميع مشروعي ولكن هل يمكننا الحصول على حل أفضل؟

حاولت مع @ أنواع / [email protected] عملت بشكل جيد

thanhngvpt أنا لا أساهم في هذا المشروع ، لذا لا يمكنني تقديم حل. اضطررت في النهاية إلى ترقية مشروعي ، ومع ذلك معظم الحزم ، وبدا كل شيء على ما يرام.

لحل هذا

npm i [email protected] --save

بنيتي تحطم من أي مكان !! لا تزال هذه القضية معروضة.

حسدتي

Ionic:

   Ionic CLI          : 5.2.3 (C\\\\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 8.0.0
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)

Utility:

   cordova-res : 0.8.1
   native-run  : 1.0.0

System:

   Android SDK Tools : 26.1.1 (C:\\\\AppData\Local\Android\Sdk)
   NodeJS            : v10.15.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10
Typescript is 2.5

نعم ، يبدو أن لا شيء أقوم به لإصلاح هذه المشكلة. ليس لدي تعريف lib في tsconfig.json بي وأنا محير تمامًا من المعلومات المقدمة في هذا الموضوع. هذا ملف tsconfig.json :

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "out",
        "forceConsistentCasingInFileNames": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "pretty": true,
        "declaration": true
    }
}

ما الذي يجب علي فعله بالضبط حيال هذا الأمر الذي سيتوقف عن إنتاج أخطاء المترجم التالية التي ليس لدي أي سيطرة عليها مطلقًا؟

node_modules/vscode/vscode.d.ts:534:3 - error TS2687: All declarations of 'textEditor' must have identical modifiers.

534     textEditor: TextEditor;
        ~~~~~~~~~~

node_modules/vscode/vscode.d.ts:8363:3 - error TS2687: All declarations of 'body' must have identical modifiers.

8363    body?: any;
        ~~~~

التبعيات:

"devDependencies": {
  "@types/node": "^8.10.59",
  "@types/vscode": "^1.1.36",
  "rimraf": "^3.0.0",
  "tslint": "^5.20.1",
  "tslint-config-xo": "^2.0.0",
  "typescript": "^3.7.4",
  "vscode": "^1.1.36"
}

يبدو أن إضافة "skipLibCheck": true إلى tsconfig.json أزال أخطاء المترجم. لست متأكدًا من أنها فكرة جيدة ألا تقوم بالتحقق من نوع المكتبات المستخدمة.

{
    "compilerOptions": {
        "skipLibCheck": true
    }
}
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات