Skip to content

Saifuddinmonna/typscriptProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 

Repository files navigation

TypscriptProject Blog :

এই ব্লগটিতে TypeScript-এর দুটি গুরুত্বপূর্ণ বিষয় নিয়ে সংক্ষেপে আলোচনা করা হয়েছে , কিন্তু কিছু কী ওয়ার্ড ইংলিশ রাখা হয়েছে যাতে বুঝতে সহজ হয়

a. টাইপস্ক্রিপ্টে Interface এবং Type-এর পার্থক্য

b. TypeScript-এ any, unknown, এবং never টাইপের পার্থক্য




a. টাইপস্ক্রিপ্টে Interface এবং Type-এর পার্থক্য

TypeScript-এ interface এবং type দুটোই ডেটার স্ট্রাকচার ডিফাইন করতে ব্যবহার হয়। কিন্তু কাজ করার সময় এদের সূক্ষ্ম পার্থক্যগুলো জানা জরুরি।

১. Declaration Merging (মার্জ করার ক্ষমতা)

  • Interface: একই নামে দুইবার Interface ডিক্লেয়ার করলে TS অটোমেটিক সেগুলোকে জোড়া লাগিয়ে দেয় । লাইব্রেরি ডেভেলপমেন্টে এটা খুব কাজের।
  • Type: এটা ফিক্সড। একই নামে দুইবার Type ডিক্লেয়ার করলে এরর খাবেন।
// Interface Merging (Works!)
interface User { name: string; }
interface User { age: number; } 
// রেজাল্ট: User-এ এখন name ও age দুটোই আছে।

// Type (Error!)
type Person = { name: string; };
// type Person = { age: number; }; // Duplicate identifier error

২. Union এবং Primitive টাইপ

Type: Union (|) বা Intersection (&) তৈরির জন্য type সেরা। এছাড়া সাধারণ string বা number-এর নতুন নাম (Alias) দিতেও type লাগে।

Interface: এটা দিয়ে সরাসরি Union বানানো যায় না। এটি মূলত অবজেক্টের শেপ ডিফাইন করতেই বেশি ব্যবহৃত হয়।

// Union Type
type ID = string | number; //  Best use case for Type

// Interface
interface Point { x: number; y: number; } //  Good for Objects

বটম লাইন: কোনটা ব্যবহার করবেন?

যদি Object নিয়ে কাজ করেন এবং ভবিষ্যতে প্রপার্টি এক্সটেন্ড করার সুযোগ রাখতে চান—তবে Interface।

যদি Union/Intersection বা ফিক্সড ডেটা টাইপ লাগে—তবে Type।


b. TypeScript-এ any, unknown এবং never টাইপ



টাইপস্ক্রিপ্টে টাইপ সেফটি বজায় রাখতে এই তিনটি বিশেষ টাইপের পার্থক্য বোঝা খুব জরুরি।

১. any (সবচেয়ে ঢিলেঢালা) মানে যেকোনো ভ্যালু নিবে

এটি ব্যবহার করা মানে টাইপ চেকিং বন্ধ করে দেওয়া। ভেরিয়েবলে যা খুশি রাখা যায় এবং যা খুশি করা যায়।

সমস্যা: কম্পাইল টাইমে এরর দেবে না, কিন্তু রানটাইমে অ্যাপ ক্র্যাশ করতে পারে।

কখন: খুব ঠেকায় না পড়লে বা JS থেকে মাইগ্রেট করা ছাড়া এটি এড়িয়ে চলাই ভালো।

let data: any = "Hello";
data = 100;      //  No Error
data.foo();      //  No Error at compile time But  at runtime! মানে কম্পাইল টাইমে ইরর হবে ।

২. unknown (নিরাপদ any)

এটিও যেকোনো ভ্যালু গ্রহণ করে, কিন্তু ব্যবহারের আগে আপনাকে অবশ্যই চেক করে নিতে হবে এর ভেতরে কী আছে। একে বলা যায় "Type-safe any"।

সুবিধা: টাইপ চেক (typeof) না করা পর্যন্ত আপনি কোনো প্রপার্টি এক্সেস করতে পারবেন না।

let input: unknown = "Hello";

// console.log(input.length); // ❌ Error: Object is of type 'unknown'

if (typeof input === 'string') {
    console.log(input.length); // Safe now

}

৩. never (অসম্ভব কিছু)

never মানে এমন কিছু যা বাস্তবে ঘটা অসম্ভব।

ব্যবহার: এমন ফাংশন যা কখনো রিটার্ন করে না (যেমন Infinite Loop বা Error Throw করা)।

Logic Check: কোডের এমন কোনো অংশ যেখানে লজিক্যালি পৌঁছানো সম্ভব না, সেখানে never ব্যবহার হয়।

// ফাংশনটি কখনো শেষ হবে না, তাই return type 'never'
function throwError(msg: string): never {
    throw new Error(msg);
}

সারকথা: কোড নিরাপদ রাখতে any বাদ দিয়ে unknown ব্যবহার করুন, আর লজিক্যাল এরর হ্যান্ডলিংয়ের জন্য never সম্পর্কে ধারণা রাখুন। তাতে করে ইরর কম হবে ।

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors