function isString(test: any): test is string{
return typeof test === "string";
}
function example(foo: any){
if(isString(foo)){
console.log("it is a string" + foo);
console.log(foo.length);
}
}
example("hello world");
উপরের বিন্যাসে প্রেজিকেট "টেস্ট স্ট্রিং" টাইপ ব্যবহার করে (রিটার্ন টাইপের জন্য কেবল বুলিয়ান ব্যবহারের পরিবর্তে, স্ট্রিং () বলা হওয়ার পরে, যদি ফাংশনটি সত্য হয়, টাইপস্ক্রিপ্ট কোনও ব্লক দ্বারা সুরক্ষিত যে কোনও ব্লকের স্ট্রিংটিতে টাইপকে সংকীর্ণ করবে Type ফাংশনটিতে কল করুন
The
{
console.log("it is a string" + foo);
console.log(foo.length);
}
টাইপ প্রিকিট সবেমাত্র সংকলনের সময় ব্যবহৃত হয়। ফলাফল .js ফাইলের (রানটাইম) কোনও পার্থক্য থাকবে না কারণ এটি টিওয়াইপিই বিবেচনা করে না।
আমি নীচের চারটি উদাহরণের মধ্যে পার্থক্যগুলি বর্ণনা করব।
উদাহরণস্বরূপ 1: উপরের উদাহরণ কোডটিতে সংকলন ত্রুটি এবং রানটাইম ত্রুটি থাকবে না।
উদাহরণস্বরূপ 2: নীচের উদাহরণ কোডটিতে সংকলন ত্রুটি থাকবে (সেই সাথে রানটাইম ত্রুটিও) কারণ টাইপস্ক্রিপ্ট টাইপটিকে স্ট্রিংয়ে সংকীর্ণ করেছে এবং পরীক্ষা করেছে যে টেক্সএফসেনশিয়ালটি স্ট্রিং পদ্ধতির সাথে সম্পর্কিত নয়।
function example(foo: any){
if(isString(foo)){
console.log("it is a string" + foo);
console.log(foo.length);
console.log(foo.toExponential(2));
}
}
উদাহরণস্বরূপ 3: নীচের উদাহরণ কোডটিতে সংকলন ত্রুটি নেই তবে রানটাইম ত্রুটি থাকবে কারণ টাইপস্ক্রিপ্ট কেবল প্রকারের মধ্যে থাকা ব্লকটিতে স্ট্রিংটি টাইপকে সংকীর্ণ করবে কিন্তু এর পরে নয়, সুতরাং foo.toE এক্সপোশেনশিয়ালটি সংকলন ত্রুটি তৈরি করবে না (টাইপস্ক্রিপ্ট এটি মনে করে না একটি স্ট্রিং টাইপ)। যাইহোক, রানটাইমে স্ট্রিংয়ের টো এক্সপেনশিয়াল পদ্ধতি নেই, সুতরাং এতে রানটাইম ত্রুটি থাকবে।
function example(foo: any){
if(isString(foo)){
console.log("it is a string" + foo);
console.log(foo.length);
}
console.log(foo.toExponential(2));
}
উদাহরণস্বরূপ 4: যদি আমরা "টেস্ট ইজ স্ট্রিং" (টাইপ প্রিডিকেট) না ব্যবহার করি তবে টাইপসক্রিপ্টটি ব্লক রক্ষিত প্রকারকে সংকীর্ণ করবে না এবং নীচের উদাহরণ কোডটিতে সংকলন ত্রুটি থাকবে না তবে এতে রানটাইম ত্রুটি থাকবে।
function isString(test: any): boolean{
return typeof test === "string";
}
function example(foo: any){
if(isString(foo)){
console.log("it is a string" + foo);
console.log(foo.length);
console.log(foo.toExponential(2));
}
}
উপসংহারটি হ'ল "টেস্ট ইজ স্ট্রিং" (টাইপ প্রিকেট) সংকলন-সময়ে ডেভেলপারদের বলার জন্য কোডটি রানটাইম ত্রুটি হওয়ার সুযোগ পাবে used জাভাস্ক্রিপ্টের জন্য, বিকাশকারীরা সংকলনের সময় ত্রুটিটি জানবেন না। এটি টাইপস্ক্রিপ্ট ব্যবহার করার সুবিধা।
booleanঅধিকার ফিরে দিয়ে ?