javascript - কৌণিক: প্রতিশ্রুতি, মানচিত্র, সেট এবং ইটারেটর খুঁজে পাচ্ছে না




angular typescript (13)

কৌণিক ইনস্টল করার পরে, টাইপস্ক্রিপ্ট সংকলক Promise , Map , Set এবং আইট্রেটার খুঁজে না পাওয়া সম্পর্কে কিছু ত্রুটি পেতে থাকে।

এখন অবধি আমি এগুলি উপেক্ষা করেছি তবে এখন আমার Promise দরকার যাতে আমার কোডটি কাজ করতে পারে।

import {Component} from 'angular2/core';
@Component({
    selector: 'greeting-cmp',
    template: `<div>{{ asyncGreeting | async}}</div>`
})
export class GreetingCmp {
    asyncGreeting: Promise<string> = new Promise(resolve => {
// after 1 second, the promise will resolve
        window.setTimeout(() => resolve('hello'), 1000);
    });
}

Additional information:
npm -v is 2.14.12
node -v is v4.3.1
typescript v is 1.6

ত্রুটিগুলি:

................ERROS OF MY CODE.................
    C:\Users\armyTik\Desktop\angular2\greeting_cmp.ts
    Error:(7, 20) TS2304: Cannot find name 'Promise'.
    Error:(7, 42) TS2304: Cannot find name 'Promise'.
    .........................................
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\platform\browser.d.ts
    Error:(77, 90) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\application_ref.d.ts
    Error:(83, 60) TS2304: Cannot find name 'Promise'.
    Error:(83, 146) TS2304: Cannot find name 'Promise'.
    Error:(96, 51) TS2304: Cannot find name 'Promise'.
    Error:(96, 147) TS2304: Cannot find name 'Promise'.
    Error:(133, 90) TS2304: Cannot find name 'Promise'.
    Error:(171, 81) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\change_detection\parser\locals.d.ts
    Error:(3, 14) TS2304: Cannot find name 'Map'.
    Error:(4, 42) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\debug\debug_node.d.ts
    Error:(14, 13) TS2304: Cannot find name 'Map'.
    Error:(24, 17) TS2304: Cannot find name 'Map'.
    Error:(25, 17) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\di\provider.d.ts
    Error:(436, 103) TS2304: Cannot find name 'Map'.
    Error:(436, 135) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\compiler.d.ts
    Error:(12, 50) TS2304: Cannot find name 'Promise'.
    Error:(16, 41) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\dynamic_component_loader.d.ts
    Error:(108, 136) TS2304: Cannot find name 'Promise'.
    Error:(156, 150) TS2304: Cannot find name 'Promise'.
    Error:(197, 128) TS2304: Cannot find name 'Promise'.
    Error:(203, 127) TS2304: Cannot find name 'Promise'.
    Error:(204, 141) TS2304: Cannot find name 'Promise'.
    Error:(205, 119) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\render\api.d.ts
    Error:(13, 13) TS2304: Cannot find name 'Map'.
    Error:(14, 84) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\async.d.ts
    Error:(27, 33) TS2304: Cannot find name 'Promise'.
    Error:(28, 45) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\collection.d.ts
    Error:(1, 25) TS2304: Cannot find name 'MapConstructor'.
    Error:(2, 25) TS2304: Cannot find name 'SetConstructor'.
    Error:(4, 27) TS2304: Cannot find name 'Map'.
    Error:(4, 39) TS2304: Cannot find name 'Map'.
    Error:(7, 9) TS2304: Cannot find name 'Map'.
    Error:(8, 30) TS2304: Cannot find name 'Map'.
    Error:(11, 43) TS2304: Cannot find name 'Map'.
    Error:(12, 27) TS2304: Cannot find name 'Map'.
    Error:(14, 23) TS2304: Cannot find name 'Map'.
    Error:(15, 25) TS2304: Cannot find name 'Map'.
    Error:(95, 41) TS2304: Cannot find name 'Set'.
    Error:(96, 22) TS2304: Cannot find name 'Set'.
    Error:(97, 25) TS2304: Cannot find name 'Set'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\lang.d.ts
    Error:(13, 17) TS2304: Cannot find name 'Map'.
    Error:(14, 17) TS2304: Cannot find name 'Set'.
    Error:(78, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\promise.d.ts
    Error:(2, 14) TS2304: Cannot find name 'Promise'.
    Error:(7, 32) TS2304: Cannot find name 'Promise'.
    Error:(8, 38) TS2304: Cannot find name 'Promise'.
    Error:(9, 35) TS2304: Cannot find name 'Promise'.
    Error:(9, 93) TS2304: Cannot find name 'Promise'.
    Error:(10, 34) TS2304: Cannot find name 'Promise'.
    Error:(11, 32) TS2304: Cannot find name 'Promise'.
    Error:(11, 149) TS2304: Cannot find name 'Promise'.
    Error:(12, 43) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\headers.d.ts
    Error:(43, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\url_search_params.d.ts
    Error:(11, 16) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\browser\browser_adapter.d.ts
    Error:(75, 33) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\dom\dom_adapter.d.ts
    Error:(85, 42) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\CoreOperators.d.ts
    Error:(35, 67) TS2304: Cannot find name 'Promise'.
    Error:(50, 66) TS2304: Cannot find name 'Promise'.
    Error:(89, 67) TS2304: Cannot find name 'Promise'.
    Error:(94, 38) TS2304: Cannot find name 'Promise'.
    Error:(94, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\Observable.d.ts
    Error:(46, 62) TS2304: Cannot find name 'Promise'.
    Error:(47, 42) TS2304: Cannot find name 'Iterator'.
    Error:(103, 74) TS2304: Cannot find name 'Promise'.
    Error:(103, 84) TS2304: Cannot find name 'Promise'.
    Error:(143, 66) TS2304: Cannot find name 'Promise'.
    Error:(158, 65) TS2304: Cannot find name 'Promise'.
    Error:(201, 66) TS2304: Cannot find name 'Promise'.
    Error:(206, 38) TS2304: Cannot find name 'Promise'.
    Error:(206, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\ForkJoinObservable.d.ts
    Error:(6, 50) TS2304: Cannot find name 'Promise'.
    Error:(7, 58) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\FromObservable.d.ts
    Error:(7, 38) TS2304: Cannot find name 'Promise'.
    Error:(7, 51) TS2304: Cannot find name 'Iterator'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\PromiseObservable.d.ts
    Error:(9, 31) TS2304: Cannot find name 'Promise'.
    Error:(10, 26) TS2304: Cannot find name 'Promise'.

কৌণিক -০.০.০-আরসি ৪ হিসাবে আপডেট হয়েছে

TLDR;

  1. এস 6 এ ট্রান্সপ্লাইল করুন

    • ত্রুটি চলে যায় (ডাব্লু / কিছু গ্যাটাচস)।
  2. এস 5 এ ট্রান্সপ্লাইল করুন

    • টাইপ ইনস্টল করুন
    • এস 6 শিম ইনস্টল করুন
    • এটি আপনার কোড সহ সংকলন করে তা নিশ্চিত করুন।
    • ত্রুটি চলে যায়।

পাঠকদের জন্য:

বিকল্প 1: এস 6 বা এস2015 এ স্থানান্তর করুন

tsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
"exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

Uglifyjs মনে রাখবেন এই মুহুর্তে es6 সমর্থন করে না । এটি আপনাকে উত্পাদন বান্ডিল তৈরি করতে প্রভাবিত করতে পারে।

বিকল্প 2: এস 5 এ স্থানান্তর করুন, টাইপগুলি ইনস্টল করুন এবং তারপরে এস 6-শিম ইনস্টল করুন:

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
  "exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

টাইপগুলি ইনস্টল করুন, তারপরে এস 6-শিম ইনস্টল করুন:

npm install typings --saveDev
typings install dt~es6-shim --global --save

আপনি যদি এই রুটে যান তবে আপনাকে অবশ্যই তা নিশ্চিত করতে হবে যে টাইপ স্ক্রিপ্ট সংকলক .d.ts ফাইলটি খুঁজে পেতে পারে।

আপনার দুটি বিকল্প রয়েছে:

ক। আপনার tsconfig.json টাইপিং ফোল্ডারের সমান স্তরে রয়েছে তা নিশ্চিত করুন।

খ। আপনার কৌনিক 2 অ্যাপ্লিকেশনটি বুটস্ট্র্যাপযুক্ত যেখানে আপনার মেইন.টি.এস. ফাইলে একটি উল্লেখ অন্তর্ভুক্ত করুন।

বিকল্প একটি: আপনার tsconfig.json টাইপিং ফোল্ডারের সমান স্তরে রয়েছে তা নিশ্চিত করুন।

দ্রষ্টব্য: টাইপিং ফোল্ডারটি বাদ দিতে বাদ্য পতাকা ব্যবহার করবেন না।

project
|-- src
|-- node_modules
|-- package.json
|-- typings
|-- tsconfig.json

বিকল্প বি: বুটস্ট্র্যাপের আগে প্রধান ফাইলে রেফারেন্স (এটি করবেন না):

অন্যান্য উত্তরে প্রদর্শিত হিসাবে, এই ফাইলটি আর কৌণিক দ্বারা অন্তর্ভুক্ত করা হয় না

main.ts:

/// <reference path="../../typings/globals/es6-shim/index.d.ts" />

কৌণিক 2 ফাইনাল

- এস 5 সমর্থন (টিএস 2.0.0 + এর সাথে পুরোপুরি কাজ করে)

প্রতি আপডেট es6-shim এখনই সমর্থিত নয়, যদি আপনি es6-shim এবং core-js es6-shim একসাথে উভয় টাইপ ইনস্টল করেন। es6-shim উল্লেখ করে es6-shim টাইপিং সরান। আপনি এখন es5 অভ্যন্তরে main.ts es5 সমর্থনের জন্য core-js es5 টাইপ করার নীচে উল্লেখ করতে main.ts

///<reference path="./../typings/globals/core-js/index.d.ts"/>

tsconfig.json

exclude: [
   "node_modules", //<-- this would be needed in case of VS2015
   "node_modules/@typings",
   "typings"
]

- এস 6 সাপোর্ট

আপনার কেবল es6 "target" সম্পত্তি সেট করা es6 , তারপরে সমস্ত ত্রুটি চলে যাবে। এবং es6 কোড es6 ফর্ম্যাটে থাকবে।


আপনি যদি ভিজুয়াল স্টুডিও 2017 এ এই ত্রুটিগুলি দেখেন বলে এখানে এসে থাকেন তবে আপনি সংকলন করতে সফল হলে উপরের মতো আলাদা সমস্যা রয়েছে। এটি কারণ ভাষা পরিষেবা আপনার tsconfig.json চয়ন করে না।

https://developercommunity.visualstudio.com/content/problem/208941/vs-156-ignores-tsconfigjson-and-typescriptcompileb.html

আপনাকে আপনার tsconfig.json এর বিল্ড অ্যাকশনটি "সামগ্রী" (রাইট ক্লিক -> বৈশিষ্ট্য) এ সেট করতে হবে, তারপরে ভিএস এটি বেছে নেবে।


আমার একই রকম সমস্যা ছিল যেখানে এটি প্রতিশ্রুতি.আলভাস () পদ্ধতিটি স্বীকৃতি দিচ্ছে না। আমি tsconfig.json এ ES5 থেকে ES6 তে "টার্গেট" মান পরিবর্তন করেছি। যে সমস্যার সমাধান।

আশাকরি এটা সাহায্য করবে.


আমার ফাইল কাঠামো নীচে হিসাবে রয়েছে:

project
 |--node-modules
 |   |--angular2
 |   |   |--typings
 |   |   |   |--browser.d.ts
 |--src
 |--app.ts

নীচে আপনার app.ts এবং আপনার সমস্যার সমাধান শীর্ষে আটকান

/// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />

আমারও একই সমস্যা আছে - "প্রতিশ্রুতি পাওয়া যায় নি" - যখন কোড কোনও প্রতিশ্রুতি বস্তু তৈরি করতে চায়।

সিস্টেম.জগুলি গঠনের জন্য সিস্টেম.কনফিগ ({...}) নেওয়া এবং এটি সূচক। Html এ অন্তর্ভুক্ত করা সহ স্ট্যাকওভারফ্লোতে কিছু সমাধানের সন্ধান করা হয়েছে।

অবশেষে আমি সমস্যার সমাধান করেছি। ইস্যুটি হ'ল, index.html এ es6-shim.min.js অন্তর্ভুক্ত করা হয়েছে। তবে, tsconfig.json এ, "compilerOptions" এর অধীনে "টার্গেট" সম্পত্তিটির "এস 5" এর মান রয়েছে। আমি এটিকে "এস 6" এ পরিবর্তন করার পরে ত্রুটি চলে গেছে।


আমি একটি কৌনিক 2 টিউটোরিয়াল (নায়ক) দিয়ে প্রশিক্ষণ দিচ্ছি।
@ প্রকারগুলি / কোর-জেএস ইনস্টল করার পরে এইগুলির উত্তরগুলিতে মন্তব্য করা হয়েছে, আমি একটি "সদৃশ সনাক্তকারী" ত্রুটি পেয়েছি।
আমার ক্ষেত্রে, এটি tsconfig.json- এ লাইব লাইন অপসারণ হিসাবে সমাধান করা হয়েছিল।

// "লিবিব": ["এস ২০১৫", "ডোম"]


আমি কৌনিক 5 থেকে কৌণিক 6 তে আপগ্রেড করার পরে এই সমস্যাগুলি দেখছি I আমি ভিএস ২০১7 এ নিম্নলিখিতটি করে এটি সমাধান করতে সক্ষম হয়েছি:

  • টাইপস্ক্রিপ্টের আমার নির্দিষ্ট সংস্করণ, ২.৯ এর জন্য টাইপস্ক্রিপ্ট এসডিকে ইনস্টল করা হয়েছে (ভিজ্যুয়াল স্টুডিও ইনস্টলার মাধ্যমে) নিশ্চিত করুন
  • মডিউল সিস্টেম প্রকল্পের সম্পত্তিটি আমার tsconfig.json: ES2015 এর সাথে মেলে কিনা তা নিশ্চিত করুন। Tsconfig ফাইলটি প্রকল্পের মূলটিতে থাকলে এটি প্রায়শই স্বয়ংক্রিয়ভাবে সিঙ্ক হয়। তবে, যেহেতু আমি ভিএস অ্যাঙ্গুলার টেম্পলেটটি ব্যবহার করছিলাম, এটি এই ফাইলগুলিকে একটি "ক্লায়েন্ট অ্যাপ" সাবফোল্ডারে রাখে এবং মডিউল সিস্টেম প্রকল্পের সম্পত্তি সেট করা হয়নি।

tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "lib": [
      "es2017",
      "dom"
    ],
    "module": "es2015",
    "baseUrl": "./"
  }
}

আর একটি ভাল সমাধান। প্রকল্পের মূল ডিরেক্টরিতে আপনার বিষয়বস্তু সহ একটি ফাইল টাইপিংস.জসোন তৈরি করতে হবে:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160909174046"
  }
}

তারপরে বৈশ্বিক বা স্থানীয় টাইপিং প্যাকেজটি ইনস্টল করুন, এটি ইনস্টল না হলে (আমি এটি বিশ্বব্যাপী ইনস্টল করছি):

sudo npm install --global typings

প্রোজেক্ট রুট ডিরেক্টরি রান কমান্ডে:

typings install

তার পরে সমস্যার সমাধান হয়। Tsconfig টার্গেটকে es6 বা es7 এ পরিবর্তন করার দরকার নেই। আপনার ওয়েব অ্যাপ্লিকেশন ব্রাউজারগুলির কিছু পুরানো সংস্করণ পরে সমর্থন করে না।


আর একটি সম্ভাব্য সমাধান হ'ল টাইপগুলি পুনরায় ইনস্টল করা:
এটি আমার জন্য "angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. প্রকল্প থেকে typings ডিরেক্টরি মুছুন (ডিরেক্টরি যেখানে কোথাও টাইপিং মডিউল ইনস্টল করা আছে)
  5. typings install
  6. npm run

টাইপস্ক্রিপ্ট> = 2 থাকার সময় tsconfig.json এ "lib" বিকল্পটি কাজটি করবে। টাইপিংয়ের দরকার নেই। https://www.typescriptlang.org/docs/handbook/compiler-options.html

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["es2016", "dom"] //or es6 instead of es2016(es7)
    }
}

টাইপিং v1.0 + সহ কৌণিক 2 আরসি 1 ব্যবহার করে কমান্ডটি ব্যবহার করুন:

typings install dt~core-js --save --global

কোর-জে সংজ্ঞাটি ইনস্টল করতে এবং তারপরে আপনার মেইন.টি.সে আপনার বিশ্বব্যাপী সূচকটি উল্লেখ করুন:

/// <reference path="../../../typings/index.d.ts" />

যদি এস 6-শিম বা অন্য কোনও শিম লাইব্রেরি ব্যবহার করা হয় তবে তার পরিবর্তে টাইপগুলি ইনস্টল করুন

github.com/typings/typings/issues/517


যেহেতু কৌণিক 2 আরসি 0 এ গিয়েছিল, /angular2/typings/browser.d.ts এখন আর কৌণিক 2 বিতরণের অংশ নয়। ফাইলটি পৃথকভাবে ইনস্টল করা যেতে পারে।

এখান থেকে: https://github.com/angular/angular/issues/8513 কয়েকটি বিকল্প রয়েছে। যে আমার পক্ষে কাজ করেছে সে হ'ল:

typings install es6-shim --ambient --save

// In your app.ts
/// <reference path="typings/browser.d.ts" />




typescript