Vivasoft-logo

3.8 টাইপ এসারশনস

টাইপ এসারশনস হল টাইপস্ক্রিপ্ট -এর একটি মেকানিজম যা কম্পাইলারকে ভ্যারিয়েবল টাইপের তথ্য দেয়। সাধারণত টাইপ এসারশনস ব্যবহার করে একটি ভ্যারিয়েবলের টাইপকে ওভাররাইড করা হয়। 

টাইপ এসারশনস ব্যবহার করে ভ্যারিয়েবলে মান অ্যাসাইন করার সময় সর্বদা নিশ্চিত হতে হবে যে সঠিক টাইপ এসারশন করা হয়েছে, না হয় প্রোগ্রাম সঠিকভাবে কাজ নাও করতে পারে।

এটি ব্যবহার করে, আমরা যেকোনো একটি সংখ্যাকে স্ট্রিং হিসাবেও বিবেচনা করতে পারি। জাভাস্ক্রিপ্ট থেকে টাইপস্ক্রিপ্টে কোড সরানোর সময়, টাইপ অ্যাসারশন প্রায়শই ব্যবহার করা হয়।

টাইপ এসারশন ফাংশন টাইপকাস্টিংয়ের মতো হলেও এর কিছু পার্থক্য রয়েছে, যেমন এটি C# এবং জাভার টাইপকাস্টিংয়ের থেকে ভিন্ন, এটি টাইপ যাচাইকরণ বা ডাটা পুনর্বিন্যাস করে না। টাইপকাস্টিংয়ের জন্য রানটাইম সাপোর্ট প্রদান করা হলেও, টাইপ অ্যাসারশন রানটাইমকে প্রভাবিত করে না। টাইপ এসারশন শুধুমাত্র কম্পাইল টাইমে কম্পাইলারকে কিভাবে কোড রিড করতে হবে তার ইঙ্গিত দেয়।

টাইপস্ক্রিপ্টে টাইপ এসারশন দুটো কৌশলে করা যায় এবং সেগুলি হল:

  • <> অপারেটর ব্যবহার করে।
  • “as” কীওয়ার্ড  ব্যবহার করে।

টাইপ এসারশনের  জন্য “as” কীওয়ার্ড ব্যবহার করা

টাইপস্ক্রিপ্টে “as” কীওয়ার্ডটি টাইপ এসারশনের একটি পদ্ধতি হিসেবে ব্যবহার করা হয়।

এর সিনট্যাক্স হল

				
					let age_any: any = 123;
let age_nmber: number = age_any as number;
				
			

উপরের সিনট্যাক্সটিতে “as” কীওয়ার্ড ব্যবহার করে any টাইপ ভ্যারিয়েবলে  টাইপ অ্যাসারশন করা হয়েছে।

উদাহরনঃ

নীচের উদাহরণটিতে টাইপ এসারশনের জন্য “as” অপারেটর ব্যবহার করা হয়েছে। প্রথমে একটি অজানা টাইপ ভ্যারিয়েবল নেয়া হয়, যার মান  “Abdul Kalam”। তারপর কম্পাইলারকে ভ্যারিয়েবলটিকে একটি স্ট্রিং হিসাবে বিবেচনা করার জন্য “as” কীওয়ার্ড ব্যবহার করে টাইপ এসারশন করা হয় এবং স্ট্রিংয়ের length প্রপার্টি ব্যবহার করা হয়।

				
					let name_unknown: unknown =’Abdul Kalam’;
console.log('name_unknown: ', name_unknown);
let name_length: number = (name_unknown as string).length;
console.log('name_unknown length is: ', name_length);
				
			

এই কোডটি কম্পাইল করলে নিচের জাভাস্ক্রিপ্ট কোডটি তৈরি হবে

				
					var name_unknown = ‘Abdul Kalam';
console.log('name_unknown: ', name_unknown);
var name_length = name_unknown.length;
console.log('name_unknown length is: ', name_length);


// output: 
// name_unknown: Abdul Kalam
// name_unknown length is: 11

				
			

টাইপ এসারশনের জন্য <> অপারেটর ব্যবহার করা

টাইপস্ক্রিপ্টে <> অপারেটরটি টাইপ এসারশনের অন্য আরেকটি পদ্ধতি হিসেবে ব্যবহার করা হয়।

এর সিনট্যাক্স হল

				
					let age_any: any = 123;
let age_nmber: number = <number> age_any;
				
			

উপরের সিনট্যাক্সটিতে <> অপারেটর ব্যবহার করে any টাইপ ভ্যারিয়েবলে  টাইপ অ্যাসারশন করা হয়েছে।

উদাহরনঃ

নীচের উদাহরণটিতে টাইপ এসারশনের জন্য <> অপারেটর ব্যবহার করা হয়েছে। প্রথমে একটি অজানা টাইপ ভেরিয়েবল নেয়া হয়, যার মান  35। তারপর কম্পাইলারকে ভেরিয়েবলটিকে একটি নাম্বার হিসাবে বিবেচনা করার জন্য <> অপারেটর  ব্যবহার করে টাইপ এসারশন করা হয়। টাইপ যাচাই করতে দ্বিতীয় ভ্যারিয়েবলের টাইপও পরীক্ষা করা হয়েছে।

				
					let age_unknown: unknown = 35;
console.log('age_unknown: ', age_unknown);
let age_number: number = <number>age_unknown;
console.log('age_number type is: ', typeof age_number);
				
			

এই কোডটি কম্পাইল করলে নিচের জাভাস্ক্রিপ্ট কোডটি তৈরি হবে

				
					var age_unknown = 35;
console.log('age_unknown: ', age_unknown);
var age_number = age_unknown;
console.log('age_number type is: ', typeof age_number);


// output: 
// age_unknown: 35
// age_number type is : number

				
			

অবজেক্ট এর টাইপ এসারশন

“as” কীওয়ার্ড এবং  <> অপারেটর ব্যবহার করে একটি অবজেক্টে টাইপ এসারশন করা যায়।

প্রথমে যে অবজেক্ট টাইপটি এসারট করতে হবে তার টাইপ ডিফাইন করে নিতে হবে, যা type বা interface ব্যবহার করে করা যেতে পারে।

				
					// interface
interface person {
  name: string;
  age: number;
}
// type 
type person = {
  name: string;
  age: number;
};

				
			

তারপর “as” কীওয়ার্ড বা  <> অপারেটর ব্যবহার করে যেকোনো অবজেক্টে person টাইপ এসারট করা যাবে।

				
					let my_obj = <person>{};
my_obj.name = 'Abdul Kalam';
my_obj.age = 25;
console.log(my_obj);
				
			

এই কোডটি কম্পাইল করলে নিচের জাভাস্ক্রিপ্ট কোডটি তৈরি হবে

				
					var my_obj = {};
my_obj.name = 'Abdul Kalam';
my_obj.age = 25;
console.log(my_obj);


// output: 
// {name: 'Abdul Kalam', age: 25 }