বিভ্রান্তকারী "সদৃশ সনাক্তকারী" টাইপস্ক্রিপ্ট ত্রুটি বার্তা


224

আমি কেন এই ধরণের আরও অনেক ত্রুটি পাচ্ছি? আমি রেপোতে পাশাপাশি নীচে কী কোড স্নিপেটগুলিতে একটি লিঙ্ক যুক্ত করছি। আমি মনে করি কীভাবে নির্ভরশীলতা এবং "অন্তর্ভুক্ত" শৃঙ্খলাবদ্ধ কাজগুলি সম্পর্কে আমার একটি প্রাথমিক ভুল ধারণা রয়েছে।

csvproc(master)> tsc
node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'.
node_modules/typescript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier 'enumerable'.
node_modules/typescript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier 'value'.
node_modules/typescript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier 'writable'.

সমস্ত কোড এখানে পাওয়া যাবে ।

আমার tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": false,
        "outDir": "built/",
        "sourceMap": true,
        "target": "es5"
    }
}

আমার tsd.json:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "node/node-0.10.d.ts": {
      "commit": "6387999eb899d0ba02d37dd8697647718caca230"
    },
    "should/should.d.ts": {
      "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
    }
  }
}

আমার tsd.d.ts:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "node/node-0.10.d.ts": {
      "commit": "6387999eb899d0ba02d37dd8697647718caca230"
    },
    "should/should.d.ts": {
      "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
    }
  }
}

আপনার tsd.d.tsসম্ভবত দেখতে বেশ কয়েকটি রেফারেন্স ট্যাগের মতো, এবং কোনও জেএসওএন ফাইল নয়।
— ইয়াংমিলস্টিওরি

1
আপনার কেন একটি typings.jsonএবং এর দরকার tsd.d.ts?
— কোডি বাগস্টিন

আমি সমাধানটি এখানে রেখেছি, আপনি দেখতে পারেন। stackoverflow.com/questions/40404353/...
— hüseyint

উত্তর:


126

এটি দুটি জিনিসের সংমিশ্রণের কারণে:

  • tsconfigকোন filesবিভাগ নেই। Http://www.typescriptlang.org/docs/handbook/tsconfig-json.html থেকে

    Tsconfig.json এ যদি কোনও "ফাইল" বৈশিষ্ট্য উপস্থিত না থাকে তবে সংকলকটি অন্তর্ভুক্ত ডিরেক্টরি এবং সাব ডিরেক্টরি ডিরেক্টরিতে সমস্ত ফাইল অন্তর্ভুক্ত করতে ডিফল্ট। যখন একটি "ফাইল" সম্পত্তি নির্দিষ্ট করা থাকে, কেবল সেই ফাইলগুলি অন্তর্ভুক্ত থাকে।

  • typescriptএনপিএম নির্ভরতা সহ অন্তর্ভুক্ত : node_modules/typescript/এর অর্থ হল যে সমস্তগুলি typescriptঅন্তর্ভুক্ত হয়ে যায় .... lib.d.tsযাইহোক আপনার প্রকল্পের মধ্যে একটি স্পষ্টত অন্তর্ভুক্ত রয়েছে ( http://basarat.gitbook.io/typescript/content/docs/types/lib.d.ts .html ) এবং এটির সাথে বিরোধী যা টাইপস্ক্রিপ্টের এনপিএম সংস্করণে পাঠায়।

ফিক্স

উভয় ক্ষেত্রেই তালিকা filesবা includeস্পষ্টভাবে https://basarat.gitbook.io/typescript/docs/project/files.html 🌹


7
অথবা এর পরিবর্তে বিশ্বব্যাপী টাইপস্ক্রিপ্ট ইনস্টল করবেন?
— রায়ান কাভানফ

2
হ্যাঁ আমি জানি না কেন সেখানে স্থানীয়ভাবে এটি আছে :) আমি ধরে নিয়েছিলাম সম্ভবত এটি থেকে কিছু
— এপিআইয়ের

রায়ানকাভানফ হ্যাঁ, এটাই সমস্যা ছিল; এবং @ বাশারত, আমি এখনও পরিশীলিত নই, সুতরাং এটি স্থানীয়ভাবে এবং বিশ্বব্যাপী আমার কাছে এটি ছিল কেবল একটি পর্যবেক্ষণ। বা আমার প্রতিরক্ষা হিসাবে, আমি যে রুবি জগতে এসেছি তা করা কোনও জিনিসকে ক্ষতি করে না, তাই এটি আমার প্রসঙ্গ ছিল :) তবুও আপনার প্রতিক্রিয়ায় আপনি যে তথ্য যোগ করেছেন তা আমার জন্য ছবিটি সম্পূর্ণ করে চলেছে। সূতরাং ধন্যবাদ. তোমরা দুজনেই!
— পিটোসালস

5
excludeসম্পত্তি ব্যবহার করুন
— বাসারাত

6
গিথুব লিঙ্কটি নষ্ট হয়েছে
— ডেনি

70

আপডেট : টাইপিংয়ের সংস্করণ 1.0 আউটপুট কাঠামো পরিবর্তন করেছে এবং নীচের উত্তরটি পূর্বের 1.0 সংস্করণের সাথে সম্পর্কিত।

আপনি যদি টাইপিংস ব্যবহার করে থাকেন এবং আপনার tsconfig.json এ বাদ দেন, আপনি ডুপ্লিকেট টাইপের ইস্যুতে চালিয়ে যেতে পারেন এবং নিম্নলিখিতগুলির মতো কিছু প্রয়োজন:

{
  "exclude": [
    "typings/browser.d.ts",
    "typings/browser",
    "node_modules"
  ]
}

টাইপস্ক্রিপ্টের সাথে সংহতকরণকে সহজ করার জন্য, দুটি ফাইল টাইপিং / মেইন.ডি.টিস এবং টাইপিংস / ব্রাউজার.ডি.টিস - উত্পন্ন হয় যা প্রকল্পে ইনস্টল করা সমস্ত টাইপগুলিকে একসাথে ব্যবহার করা যেতে পারে reference

সুতরাং আপনার কোন সংস্করণটি প্রয়োজন তার উপর নির্ভর করে আপনার "ব্রাউজার" বা "প্রধান" প্রকারের ফাইলগুলি বাদ দেওয়া উচিত (বা অন্তর্ভুক্ত করা উচিত) তবে উভয়ই নয়, নকলগুলি এখান থেকে এসেছে।

এই টাইপিংস ইস্যু এটি আরও আলোচনা করে।


দারুণ মানুষ, এটি আপনার প্রকল্পের টাইপগুলি অন্তর্ভুক্ত করে থেকে সদৃশ শনাক্তকারী ত্রুটিটি দিয়ে সমস্যার সমাধান করে :)
— ম্যাজিকোডে 118

কেন শুধু "টাইপিংস" বাদ না? টাইপিংগুলি শুধুমাত্র ডেভ টাইমের জন্য, রান টাইমের জন্য নয়?
— এরিক হার্টফোর্ড

এটি সংজ্ঞায়িত করা হচ্ছে সংকলনের সময় প্রকারগুলি কোথায় পাওয়া যায়। আপনি যদি "টাইপিংস" বাদ দেন তবে আপনি আর কোনও ধরণের সন্ধান করতে পারবেন না। এখানে সমস্যাটি এটি সংকলন করার চেষ্টা করছে এবং সেখানে সদৃশ প্রকার রয়েছে। টাইপস্ক্রিপ্ট কোনও রানটাইম নয়, এটি আপনার কোডটিকে জাভাস্ক্রিপ্টে স্থানান্তর করে।
— যুক্তিযুক্তদেব GoFundMonica পছন্দ করেছেন

2
VS2017 এ আমাকে .NETCore2 MVC অ্যাপ্লিকেশনটিতে "বিন", "আপত্তি" বাদ দিতে হয়েছিল
— OSP

আমার এই ওএসপি হিসাবে একই সমস্যা ছিল। ওজেজ ফোল্ডারে তাদের মধ্যে টাইপস্ক্রিপ্ট ফাইল ছিল, তাই তারা সদৃশ হিসাবে প্রদর্শিত হচ্ছে। এটি প্রতিবার প্রথমবার তৈরি করার পরে সমস্যার সৃষ্টি হয়েছিল এবং তারপরে আমি যখন বিল্ডের ধরণটি পরিবর্তন করেছিলাম তখন প্রতিবারই নির্মাণ করার সময় সমস্যা সৃষ্টি করে চলেছি।
— গ্রুনডোন্ডোলা

24

আপনি যদি টাইপিং ফোল্ডারের অধীনে আলাদাভাবে টাইপগুলি ইনস্টল করেন

{
  "exclude": [
    "node_modules",
    "typings"
  ]
}

2
আহ হ্যাঁ - আমার বাদে টাইপিং যুক্ত করা আমার বাগটি ঠিক করেছে।
— cport1

1
আমার কাছেও অনুলিপি / আপত্তি ছিল, যা "টাইপস্ক্রিপ্ট ভার্চুয়াল প্রকল্পগুলি" থেকে ত্রুটিগুলি সৃষ্টি করেছিল। এগুলি বাদ দেওয়ার জন্য "আপত্তি" যোগ করা fixed
— জন

এটি আমার বিল্ড সিন্ডকে পুরোপুরি বিরতি দেয় টাইপিংগুলি অনুপস্থিত।
— স্পেনহোয়েট

21

সমস্যাটি সহজভাবে সমাধান করা হয়েছিল:

  1. node_modulesফোল্ডারটি মোছা হচ্ছে
  2. npm installসঠিক সংস্করণ সহ সমস্ত প্যাকেজ পাওয়ার জন্য চলছে

আমার ক্ষেত্রে, গিট শাখাগুলি পরিবর্তনের পরে সমস্যা দেখা দিয়েছে, যেখানে একটি নতুন শাখা নোড মডিউলগুলির একটি আলাদা সেট ব্যবহার করছে। পুরানো শাখাটি টাইপস্ক্রিপ্ট v1.8 ব্যবহার করছিল, নতুন একটি ভি 2.0


1
হ্যাঁ এটি আমার পক্ষে কাজ করেছিল। আমি প্রথমে নোড_মডিউলগুলি মুছতে সক্ষম হয়েছি না কারণ এটি বলছে এটি মুছতে প্রশাসকের অ্যাক্সেস দরকার needs আমার ব্যবহারকারীর অ্যাকাউন্টে প্রশাসকের অ্যাক্সেস রয়েছে; আসল সমস্যাটি হ'ল আমার ফোল্ডারটি ব্যবহার করা প্রোগ্রামগুলি বন্ধ করা দরকার।
— ড্র হয়েছে

15

আমি শুধু এই সমস্যা মধ্যে দৌড়ে। আমি যখন দৌড়ালাম তখন আমি npm startডুপ্লিকেট শনাক্তকারী ত্রুটিগুলির একটি গুচ্ছ পেয়েছি।

সমাধান:

প্রকল্পের রুট ফোল্ডার রান থেকে:

rm -r typings
typings install
npm start

এবং সবকিছু ঠিকঠাক কাজ করে।


আমার জন্য, আমি আমার পলিফিলগুলি ব্যবহার es6-shimকরে ব্যবহার থেকে স্যুইচ core-jsকরছি এবং এটিই সমাধানটি কার্যকর হবে। একজন কম ভারী হাতে পদ্ধতির ব্যবহার করা typings prune।
— স্ট্রিপলিং ওয়ারিয়র

আমার জন্য কাজ কর. তবে অনুমান করুন 'টাইপ ইনস্টল' এর পরিবর্তে 'এনপিএম ইনস্টল' হওয়া উচিত
— ইহোর খোমিয়াক

আমার কোনও typingsফোল্ডার নেই :(
— জেমি হাটবার

12

আপনি এই জাতীয় tsconfig.json ফাইলে বাদ দেওয়া বিকল্পটি ব্যবহার করতে পারেন:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "exclude": [
    "node_modules"
  ]
}

4
আমি এই একই একই সমস্যা করছি। এই ফিক্সটি আমার পক্ষে কাজ করে না। আমি টাইপস্ক্রিপ ব্যবহার করছি 1.75। আমি টাইপস্রিপ্ট গিথুব রেপোতে একটি সমস্যা পোস্ট করেছি ।
— বার্ট

1
আপনি যদি টাইপিংগুলি ব্যবহার করছেন এবং টিএসডি না ব্যবহার করছেন তবে আপনার @ @ যুক্তিবাদী দেভ প্রস্তাবিত সমাধানটি ব্যবহার করতে হবে
— ই

4

আমার ক্ষেত্রে আমি ত্রুটি হিসাবে পেয়েছিলাম

node_modules/@tyype/es6-promise/index.d.ts (11,15): ত্রুটি টিএস 2300: সদৃশ সনাক্তকারী 'প্রতিশ্রুতি'।

এবং আমি @types/es6-promiseআমার প্যাকেজ.জসনে tsconfigছিল কিন্তু আমার ইতিমধ্যে ছিল target: "es6"। তাই আমি অনুমান করি যে Promiseসংকলন করার সাথে একটি বিরোধ ছিল ।

@types/es6-promiseআমার package.jsonফাইল থেকে সরানো সমস্যার সমাধান করেছে।


3

ওয়েবপ্যাক ব্যবহার করে আমি একই ত্রুটিটি দেখতে পেয়েছি, কেবলমাত্র .d.tsআপনার tsconfig.json এবং নোড_মডিউলগুলিতে আমার সমস্যাটি সমাধান হয়েছে:

"exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts",
    "typings/index.d.ts"
] 

ওয়েবপ্যাকের মাধ্যমেও আমার এই ত্রুটি ছিল, কেবল সার্ভারটি পুনরায় চালু করে এটি ঠিক করা হয়েছে।
— ক্লিন্ট

1

ডিস্কে অপ্রত্যাশিত ফোল্ডার থাকার কারণে আমার এই সমস্যা হয়েছিল (এটি jspm_packagesআর ব্যবহার করা হচ্ছে না) যা উত্স নিয়ন্ত্রণ দ্বারা ট্র্যাক করা হয়নি (এবং আমার আইডিই থেকে লুকানো)। এটিতে টাইপস্ক্রিপ্টের একটি সদৃশ ইনস্টল ছিল যা সমস্যার কারণ হয়েছিল।

একটি প্রান্ত মামলার বিট কিন্তু অন্য কেউ এই সমাধানের জন্য শিকার করছে এমন ক্ষেত্রে এখানে একটি উত্তর রেখে চলেছে।


আমার অনুরূপ. আমি ভিজ্যুয়াল স্টুডিও কোডে একটি টাইপ স্ক্রিপ্ট ফাইলটির নামকরণ করেছি যা একটি অদৃশ্য (অনাথ) .js ফাইলের কারণ হয়ে গেছে যা আইডিইতে আর প্রদর্শিত হয়নি তবে তা সত্ত্বেও সদৃশ সনাক্তকারী ত্রুটিটি দেখিয়েছিল।
— ডাগ 2

0

আমার এই সমস্যা ছিল এবং এটি দেখা যাচ্ছে যে আমার প্রকল্পে আমার দ্বিতীয় নোড_মডিউল ফোল্ডার ছিল যা সেখানে থাকার কথা ছিল না :-(


কিছু গ্রন্থাগার রয়েছে যা তাদের ফোল্ডারগুলির মধ্যে নোড_মডিউল রয়েছে। যখন আমি নড ৪.০.০ ব্যবহার করছিলাম এটি কখনই কোনও সমস্যা তৈরি করে নি, তবে নোড 6..৯.০ সহ হঠাৎ এটি ত্রুটি ছুঁড়ে দিচ্ছে।
— heman123

এই সমস্যাটি কী সংস্করণ দিয়ে শুরু হয়েছিল তা ভাবুন। নোড 5.6.0 নিয়ে আমার সমস্যা ছিল।
— ব্রুনো

0

আমি আমার tsconfig.json পরিবর্তন করার পরে: "es2015" এবং মডিউল: "es2015" লক্ষ্য করার জন্য অন্যদের সাথে আমারও এই ত্রুটি ছিল।

বেস (AngularJS2 /// <reference path="../../typings/index.d.ts" />quickstart ) মেইন.টি.এস. ফাইলে ব্যবহৃত হয়। এটি সমাধান করতে, আমাকে সেই লাইনটি সরিয়ে ফেলতে হয়েছিল।


0

আমরা ওয়েবসাইট ফোল্ডার থেকে একটি lib ফোল্ডার সরিয়েছি। এটি পূর্ববর্তী টাইপিংয়ের দ্বারা তৈরি করা হয়েছিল। এটি নকল হয়ে গেল। এটি সরানো হলে এটি কাজ করে!


0

এটি আপনার নোড ফোল্ডারে টাইপিং এবং নির্ভরতা উভয়ের কারণেই হতে পারে। সুতরাং প্রথমে আপনার @ টাইপ ফোল্ডারে কী আছে তা যাচাই করুন এবং যদি তা নির্ভরতার মধ্যে থাকে তবে নকলটি সরিয়ে ফেলুন। আমার জন্য এটি কোর.জেএস ছিল


0

এই @ প্রকারের / এক্সপ্রেস-বৈধকারীকে প্যাকেজ.জসন ফাইল থেকে সরান, তারপরে এনপিএম ইনস্টল চালান run

আরও পড়ুন

লেখকের বার্তা: এই প্যাকেজটি অবহেলা করা হয়েছে এটি এক্সপ্রেস-ভ্যালিডেটর ( https://github.com/ctavan/express- লাডিয়েটার ) এর জন্য স্টাব ধরণের সংজ্ঞা । এক্সপ্রেস-ভ্যালিডেটর তার নিজস্ব ধরণের সংজ্ঞা দেয়, সুতরাং আপনার @ টাইপ / এক্সপ্রেস-ভ্যালিডেটর ইনস্টল করার দরকার নেই!



-2

আমিও একই রকম সমস্যায় পড়েছি। কেবলমাত্র আমার প্রকল্পের মূল থেকে আমার স্ক্রিনফিগ.জসনকে অন্য একটি স্কোপে স্থানান্তরিত করা সহায়ক। আমার প্রকল্পে, আমি tsconfig.json কে মূল থেকে wwwroot এ স্থানান্তরিত করেছি।


-2

সমাধানটি সম্পূর্ণভাবে বন্ধ করা এবং প্রকল্পটি পুনরায় চালু করা আমার সমস্যা সমাধান করেছে।


কেন আপনি নিম্নচাপ পেয়েছেন তা জানেন না। আপনার উত্তরটি পড়ার পরে আমি ইন্টেলিজজে "অবৈধ ক্যাশে এবং পুনঃসূচনা" ক্লিক করেছি এবং সমস্যাটি সমাধান হয়ে গেছে, তাই আপনাকে ধন্যবাদ!
— জোহানেস স্টাডলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.