প্রকারলিপি: অনুলিপি শনাক্তকারী 'IteratorResult'


118

আমি যে মাধ্যমে tscআমি বিশ্বব্যাপী ইনস্টল করেছি - এর মাধ্যমে সংকলন করার চেষ্টা করছি এবং আমি একটি ত্রুটি পাচ্ছি:

~/AppData/Roaming/nvm/v11.15.0/node_modules/typescript/lib/lib.es2015.iterable.d.ts:41:6 - error TS2300: Duplicate identifier 'IteratorResult'.

41 type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
        ~~~~~~~~~~~~~~

  node_modules/@types/node/index.d.ts:170:11
    170 interface IteratorResult<T> { }
                  ~~~~~~~~~~~~~~
    'IteratorResult' was also declared here.

node_modules/@types/node/index.d.ts:170:11 - error TS2300: Duplicate identifier 'IteratorResult'.

170 interface IteratorResult<T> { }
              ~~~~~~~~~~~~~~

~/AppData/Roaming/nvm/v11.15.0/node_modules/typescript/lib/lib.es2015.iterable.d.ts:41:6
    41 type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
            ~~~~~~~~~~~~~~
    'IteratorResult' was also declared here.


Found 2 errors.

আমার @types/node10.1.0 সংস্করণ ইনস্টল করা আছে। ( @latestএর নিজস্ব সমস্যা আছে ...)

tsconfig.json

{
  "compilerOptions": {
    "target": "es2018",
    "moduleResolution": "node",
    "module": "commonjs",
    "jsx": "react",
    "lib": [
      "dom",
      "es2018",
      "dom.iterable",
      "scripthost"
    ],
    "typeRoots": [
      "./node_modules/@types",
      "./types"
    ],
    "types": [],

    "alwaysStrict": true,
    "strictNullChecks": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,

    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "esModuleInterop": true,

    "sourceMap": true,

    "outDir": "dist"
  },
  "files": [
    "app/index.tsx"
  ],
  "include": [
    "app/**/*.ts",
    "app/**/*.tsx",
    "test/**/*.ts",
    "test/**/*.tsx",
    "node_modules/@types/**/*.d.ts",
    "./types/**/*.d.ts"
  ],
  "exclude": [
    "dist"
  ]
}

যদি আমি typescriptবিশ্বব্যাপী আনইনস্টল করি এবং npx tscএটি কাজ করে তবে typescriptবিশ্বব্যাপী ইনস্টল করা এবং চালানোতে কোনও ভুল হওয়া উচিত না । সর্বোপরি, এটি বিশ্বব্যাপী জিনিসগুলি ইনস্টল করার পুরো বিষয়।

এরই মধ্যে আমার একটি কর্মক্ষমতা রয়েছে যা কেবলমাত্র ওরফে টিএসসি (আমি উইন্ডোজে গিট ব্যাশ ব্যবহার করছি)।

alias tsc="path/to/project/node_modules/.bin/tsc.cmd"

আমি যখন v3.5.3 থেকে v3.6.2 এ বিশ্বব্যাপী আপগ্রেড করেছি তখন এই সমস্যাটি আমার পক্ষে উঠতে শুরু করেছে ... সুতরাং অনুমান করে সেখানে কিছু পরিবর্তন হয়েছে যা এখানে আছে। রোলব্যাক সাহায্য করেছে বা স্ক্রিপ্টটি "বিল্ড" করেছে: প্যাকেজ.জসনে "tsc" এবং এনপিএম রান বিল্ড সাহায্য করে, যেখানে আমার স্থানীয় প্যাকেজটির টাইপস্ক্রিপ্ট v3.5.3 এ ছিল তাই এনপিএম এটি ব্যবহার করে।
অনন্ত আনন্দ গুপ্ত

উত্তর:


164

গিটহাব-এ একটি সমস্যা খুঁজে পেয়েছে - https://github.com/microsoft/TypeScript/issues/32333 যা সম্পর্কিত। @ আরবুকটন আপগ্রেড করার পরামর্শ দিয়েছে @types/node। এটা আমার জন্য কাজ করেছে।


38
npm install --save-dev @types/node
কভারবয়

21
npm update --save-dev @types/nodeএটি আরও সঠিক কারণ এটি একটি ছোটখাটো সংস্করণ আপগ্রেড হতে পারে, ইনস্টল বনাম আপডেট দেখুন
তারান

14
আমি কৌণিক 9. আমি সম্ভাব্য একটি সহজ করতে আমার প্রকল্প আপগ্রেড পর storybook চলমান এই ত্রুটি পেয়ে ছিল npm install @types/nodeধরনের / নোডের সংস্করণ ইনস্টল হবে আমি ইতিমধ্যে আমার package.json আছে, তাই আমি করেনি npm install @types/node@latestএবং এটা কাজ করে।
মুহাম্মদ বিন ইউসরাত

এর পরে আমি ত্রুটি পেয়েছি টিএস 2320: ইন্টারফেস 'নোডরেকায়ার' একই সাথে 'প্রয়োজনীয়তা' এবং 'প্রয়োজনীয়তা ফাংশন' টাইপগুলি প্রসারিত করতে পারে না
ট্রাভনিকভ.দেব

node_modulesএটি কাজ করার জন্য তাদের আবার মুছে ফেলা এবং ইনস্টল করতে হবে, তবে আসলে সমস্যাটি ছিল!
ড্যানিয়েল ড্যানিয়েলেকি

14

আমি আমার কৌনিক 8 অ্যাপে ত্রুটি পেয়েছি এবং গ্রহণযোগ্য উত্তর সহ এখানে দেওয়া সমস্ত পরামর্শ চেষ্টা করেও সমস্যার সমাধান করতে পারছি না। আমাকে একটি পূর্ববর্তী কৌণিক 6 অ্যাপের দিকে তাকাতে হয়েছিল যা ত্রুটি ছাড়াই সংকলিত হয়েছিল এবং বুঝতে পেরেছিল যে আমি যুক্ত করে লাইব্রেরি চেকটি এড়িয়ে যেতে পারি

"skipLibCheck": সত্য

tsconfig.json ফাইলটিতে। আমার অ্যাপ্লিকেশনটি সমস্যা ছাড়াই ভাল চলছে, এই সিদ্ধান্ত নিয়ে আমি সিদ্ধান্ত নিয়েছি। আমার tsconfig.json ফাইলটির সম্পূর্ণ কনফিগারেশন এখানে

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

এই কনফিগারেশনের পরে আর কোনও ত্রুটি ছিল না। দ্রষ্টব্য: এর অর্থ এই নয় যে সমস্যাটি সমাধান হয়েছে তবে কমপক্ষে এটি আমাকে ত্রুটি সৃষ্টি করার ফলে যে সমস্যাটি ত্রুটিযুক্ত ছিল তা এড়িয়ে যাওয়ার অনুমতি দিয়েছে। আমার অ্যাপ্লিকেশনটি প্রত্যাশা মতো চলছে বলে এই কারণে আমি এই মুহূর্তে এই ত্রুটিটিকে অপ্রাসঙ্গিক বলে মনে করেছি।


8

আমি সন্দেহ করি কারণ এটি আপনার অন্তর্ভুক্ত বিভাগ:

"include": [
    "app/**/*.ts",
    "app/**/*.tsx",
    "test/**/*.ts",
    "test/**/*.tsx",
    "node_modules/@types/**/*.d.ts",
    "./types/**/*.d.ts"
  ]

আপনার সাধারণত * .d.ts ফাইলগুলি স্পষ্টভাবে অন্তর্ভুক্ত করার প্রয়োজন হয় না। এবং সম্ভবত অন্যান্য লাইব্রেরি (বা নোডের প্রকারের) থেকে কখনই ফাইল ডিক্লেয়ার হয় না।

tsconfigএর "বাদ দিন" বিভাগটি "node_modules"ডিফল্টরূপে (অন্যান্য জিনিসগুলির মধ্যে) সমস্ত কিছু বাদ দেয় । আপনি যখন যুক্ত করবেন তখন "node_modules/@types/**/*.d.ts"ওভাররাইড করে যে বাদ দেয় এবং tsc এগুলিকে অন্তর্ভুক্ত করার চেষ্টা করে তবে এই ধরণের প্রকারগুলি ইতিমধ্যে ঘোষিত হয়েছে।

উপর টাইপ করা বিষয় ডক্স চেক করুন tsconfig.json , এটা ব্যাখ্যা করে "typeRoots" , "ফাইল" এবং "অন্তর্ভুক্ত" / "অগ্রাহ্য" বিস্তারিতভাবে কনফিগ অপশন।


4
আমার জন্য, এটি tsconfig.json এ লাইন ছিল: "files": [ "./node_modules/@types/node/index.d.ts" ],যা আমি কিছু টিউটোরিয়াল থেকে নিয়েছি। আপনার উত্তর সাহায্য!
ক্যাফেইনাম

3

আমার জন্য এটি প্রমাণিত হয়েছিল যে আমার node_modulesএকটি পিতামাতার ডিরেক্টরি প্রকল্পে একটি ফোল্ডার ছিল , এর অনুরূপ কিছু:

node_modules
my-project
- node_modules

যেহেতু এটির node_modulesএকটি পুরানো সংস্করণ @types/nodeইনস্টল করা আছে, সমস্যাটি ঘটেছে। আমার ক্ষেত্রে সমাধানটি হালনাগাদ @types/nodeকরার জন্য নয়, পরিবর্তে সেগুলি মুছে ফেলার জন্য node_modulesযেহেতু আমি তাদের প্রথম স্থানে ব্যবহার করছি না।

আপনার যদি node_modulesপিতৃ ডিরেক্টরিতে বিভিন্ন প্রকারের সাথে প্রকৃতপক্ষে প্রয়োজন হয় এবং আপনি এটি এটি হতে চান তবে আপনি সুনির্দিষ্টভাবে typeRootsনির্দিষ্ট করতে পারেন :

{
  "compilerOptions": {
    "module": "esnext",
    "target": "es6",
    "declaration": true,
    "outDir": "./dist",
    "typeRoots": ["./node_modules/@types/"]
  },
  "include": [
    "src/**/*"
  ]
}

এইভাবে, পিতামাতার node_modulesধরণের জন্য স্ক্যান করা হয় না। অন্যথায় তারা হয়, এখানে পড়ুন: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#tyype-typeroots- এবং- টাইপস

ডিফল্টরূপে সমস্ত দৃশ্যমান "@ টিপস" প্যাকেজগুলি আপনার সংকলনের অন্তর্ভুক্ত। নোড_মডিউল / @ যে কোনও এনক্লোজিং ফোল্ডারের ধরণের প্যাকেজগুলি দৃশ্যমান হিসাবে বিবেচিত হয়; বিশেষত, এর অর্থ ./node_modules/@tyype/, ../node_modules/@tyype/, ../../node_modules/@tyype/, এবং এর মধ্যে থাকা প্যাকেজগুলির অর্থ।


2

যেমনটি মুহম্মদ বিন ইউসরাত তার মন্তব্যে বলেছিলেন, আপনি এখনই কৌনিক updated। এ আপডেট করেছেন তবে চালান npm i @types/node@latest( npm i @types/nodeকাজ করেন না !!) এটি আমার পক্ষে কাজ করেছে।

এটি চলার পরে আরও একটি আয়নিক 5 কনসোল ত্রুটি থেকে মুক্তি পেয়েছে ionic serve-> 'চিত্র লোড করতে অস্বীকার করেছে' http: লোকালহোস্ট: 8100 / ফেভিকন.ইকো 'কারণ এটি নিম্নলিখিত সামগ্রী সুরক্ষা নীতি লঙ্ঘন করেছে .....' (নীচে দেখুন)।

আয়নিক পরিবেশন করার পরে আয়নিক 5 ত্রুটি

"স্প্রেড প্রকার" ত্রুটির কারণে আর একটি 'IteratorResult' ত্রুটি হয়েছিল। প্রকারভেদ দেখুন : স্প্রেড প্রকারগুলি কেবলমাত্র বস্তুর প্রকার থেকে তৈরি করা যেতে পারে । মূলত আপনার কোডটিতে কোথাও আপনি এর মতো স্প্রেড অপারেটর ব্যবহার করেছেন return { id: doc.payload.id, ...doc.payload.data() };এবং আপনাকে এটিতে এটি পরিবর্তন করতে হবে return { id: doc.payload.id, ...doc.payload.data() as {} }; অর্থাৎ যুক্ত করুনas {}


শুধু কৌনিক 8 থেকে 9 থেকে আপগ্রেড করুন, npm install --save-dev @types/node@latest"IteratorResult" ত্রুটিটি ঠিক করেছেন, ধন্যবাদ !!
নাইয়ার

0

@types/nodeআপনার কৌণিক প্রকল্পের ডেডডেপেন্ডেন্সগুলিতে কেবল আপগ্রেড করুন :

 npm i --save-dev @types/node

*** কিছু পরিবর্তন করবেন না node_modules***



-1

ত্রুটি গুগল করার পরে আমি এই থ্রেডটি পেয়েছি। আমার সমস্যাটি হ'ল একরকম আমার অবিবাহিত আমদানি হয়েছিল যার কারণে এটি ঘটেছে:

import { error } from 'protractor';

-1

নোড_মডিউলস / @ টাইপস / ননড / ইন্ডেক্স.ড.টি ফাইলগুলিতে ইন্টারফেস "IteratorResult" ঘোষণার একটিতে মন্তব্য করে আমি নিজেই এই সমস্যাটি সমাধান করেছি। আশা করি এটি সাহায্য করবে।


4
অন্য কাউকে আপনার রেপো ক্লোন / ইনস্টল করার প্রয়োজন না হওয়া পর্যন্ত এটি কাজ করে
dx_over_dt

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.