উত্তর:
বর্তমানের lib.d.ts এর সংজ্ঞায়িত প্রতিশ্রুতি নেই তাই এটির জন্য আপনার একটি অতিরিক্ত সংজ্ঞা ফাইলের প্রয়োজন কারণ আপনি সংকলন ত্রুটি পেয়ে যাচ্ছেন।
আপনি উদাহরণস্বরূপ ব্যবহার করতে পারেন (যেমন @ এলক্লানারস বলেছেন) ডিফিনিটাইল টাইপড থেকে এস 6-প্রতিশ্রুতি সংজ্ঞা
তারপরে আপনি এটির মতো এটি ব্যবহার করতে পারেন:
var p = new Promise<string>((resolve, reject) => {
resolve('a string');
});
সম্পাদনা আপনি ইএস target (টাইপস্ক্রিপ্ট সংকলক সহ) লক্ষ্যবস্তু করার সময় এটি সংজ্ঞা ছাড়াই ব্যবহার করতে পারেন - নোট করুন আপনার এখনও রানটাইম অফ কোর্সে উপস্থিত থাকার প্রতিশ্রুতি প্রয়োজন (যাতে এটি পুরানো ব্রাউজারগুলিতে কাজ করবে না :)) আপনার সাথে নিম্নলিখিতগুলি যুক্ত / সম্পাদনা করুন tsconfig.json:
"compilerOptions": {
"target": "ES6"
}
2 সম্পাদনা করুন যখন টাইপস্ক্রিপ্ট 2.0 প্রকাশিত হবে তখন জিনিসগুলি কিছুটা বদলে যাবে (যদিও উপরে এখনও কাজ করে) তবে সংজ্ঞা ফাইলগুলি নীচের মতো এনপিএম দিয়ে সরাসরি ইনস্টল করা যেতে পারে:
npm install --save @types/es6-promise- উত্স
প্রকারগুলি ব্যবহারের জন্য আরও তথ্যের সাথে edit3 উত্তর আপডেট করা হচ্ছে।
package.jsonকেবলমাত্র { }সামগ্রী হিসাবে একটি ফাইল তৈরি করুন (যদি আপনার কাছে ইতিমধ্যে প্যাকেজ.জসন না থাকে Call কল করুন npm install --save @types/es6-promiseএবং tsc --initপ্রথম এনপিএম ইনস্টল কমান্ড package.jsonএসএস-প্রতিশ্রুতি নির্ভরতা হিসাবে অন্তর্ভুক্ত করতে আপনাকে পরিবর্তন করবে । Tsc --init একটি tsconfig.jsonফাইল তৈরি করবে তোমার জন্য.
আপনি এখন প্রতিশ্রুতিটি আপনার টাইপ স্ক্রিপ্ট ফাইলে ব্যবহার করতে পারেন var x: Promise<any>;। সম্পাদন tsc -p .আপনার প্রকল্পের কম্পাইল করার। আপনার কোনও ত্রুটি থাকা উচিত নয়।
--save-devপরিবর্তে পতাকাটি ব্যবহার করা উচিত --save, কারণ গ্রন্থাগারটি কেবল সংকলনের সময় ব্যবহৃত হয়।
ইনস্টল করার প্রয়োজন ছাড়াই সরাসরি সংকলনের জন্য targetএবং libসংকলক বিকল্পগুলি ব্যবহার es5করুন es6-shim। (টাইপস্ক্রিপ্ট দিয়ে পরীক্ষিত 2.1.4)। লিব অংশে, হয় es2016বা ব্যবহার করুন es2015.promise।
// tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": [
"es2015.promise",
"dom"
]
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
]
}
প্রকারের সংস্থাes6-shim থেকে ইনস্টল করতে এনপিএম ব্যবহার করুন ।
npm install @types/es6-shim --save-dev
টাইপ করা বিষয় 2.0 আগে, ব্যবহার typings ইনস্টল করার es6-shimথেকে বিশ্বব্যাপী DefinitelyTyped ।
npm install typings --global --save-dev
typings install dt~es6-shim --global --save-dev
typingsবিকল্প ব্যবহার npmইনস্টল করতে typingsবিশ্বব্যাপী এবং তারপর ব্যবহার typingsshim ইনস্টল করতে। dt~উপসর্গ DefinitelyTyped থেকে shim ডাউনলোড করতে মানে। --globalবিকল্প উপায়ে যে shim এর ধরনের প্রকল্পের সর্বত্র পাওয়া যাবে।
https://github.com/Mic Microsoft/TypeScript/issues/7788 - 'প্রতিশ্রুতি' নামটি খুঁজে পাওয়া যায় না এবং 'প্রয়োজনীয়' নাম খুঁজে পাওয়া যায় না
es2016আপনার টার্গেট ES2016 সমর্থন না করা সহ অন্তর্ভুক্ত করা ভাল ধারণা নয়। অনেকগুলি ব্রাউজার রয়েছে যা প্রতিশ্রুতিগুলিকে সমর্থন করে তবে ES2016 এ সবকিছুই সমর্থন করে না। es2015.promiseES2016 এর প্রতিটি কিছুর জন্য টান না দিয়ে কেবল প্রতিশ্রুতির জন্য প্রকারগুলি অন্তর্ভুক্ত করতে ব্যবহার করুন ।
টাইপস্ক্রিপ্ট ২.০ অনুসারে আপনি নিজের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত করে দেশীয় প্রতিশ্রুতিগুলির জন্য টাইপগুলি অন্তর্ভুক্ত করতে পারেন tsconfig.json
"compilerOptions": {
"lib": ["es5", "es2015.promise"]
}
এর মধ্যে ES6 এ লক্ষ্য নির্ধারণ না করে টাইপস্ক্রিপ্টের সাথে আসা প্রতিশ্রুতি ঘোষণাগুলি অন্তর্ভুক্ত থাকবে।
আপনি যদি নোড.জেএস ০.০২ বা তার বেশি / টাইপস্ক্রিপ্ট ১.৪ বা তার বেশি ব্যবহার করেন তবে কেবল সংকলক বিকল্পগুলি যুক্ত করুন:
tsc a.ts --target es6 --module commonjs
আরও তথ্য: https://github.com/Mic Microsoft/ TypeScript / wiki / Compiler- অপশন
আপনি যদি ব্যবহার করেন tsconfig.jsonতবে এটি পছন্দ করুন:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6"
}
}
আরও তথ্য: https://github.com/Mic Microsoft/ TypeScript / wiki / tsconfig.json
এটি করার জন্য এটি অতি সাম্প্রতিক উপায়, উপরের উত্তরটি পুরানো:
typings install --global es6-promise
ES6 প্রতিশ্রুতি দেশীয় হিসাবে কোনও এনপিএম ইনস্টল প্রয়োজন।
নোড.জেএস প্রকল্প -> সম্পত্তি -> টাইপস্ক্রিপ্ট বিল্ড ট্যাব ECMAScript সংস্করণ = ECMAScript6
import http = require('http');
import fs = require('fs');
function findFolderAsync(directory : string): Promise<string> {
let p = new Promise<string>(function (resolve, reject) {
fs.stat(directory, function (err, stats) {
//Check if error defined and the error code is "not exists"
if (err && err.code === "ENOENT") {
reject("Directory does not exist");
}
else {
resolve("Directory exists");
}
});
});
return p;
}
findFolderAsync("myFolder").then(
function (msg : string) {
console.log("Promise resolved as " + msg);
},
function (msg : string) {
console.log("Promise rejected as " + msg);
}
);
উ: যদি ব্যবহার করা হয় "target": "es5"এবং ২.০ এর নীচে টাইপস্ক্রিপ্ট সংস্করণ:
typings install es6-promise --save --global --source dt
বি। ব্যবহার করে "target": "es5"এবং টাইপস্ক্রিপ্ট সংস্করণ 2.0 বা হাইজার:
"compilerOptions": {
"lib": ["es5", "es2015.promise"]
}
সি যদি ব্যবহার "target": "es6"করে থাকে তবে কিছু করার দরকার নেই।
"target": "es6"টাইপস্ক্রিপ্ট ২.১.১ ব্যবহার করছি এবং এখনও পাচ্ছি Cannot find name 'Promise'।
es6-promise