JavaScript vs TypeScript — সহজ ভাষায় তুলনা
JavaScript (JS) আর TypeScript (TS) — দুটোই জনপ্রিয় programming language, কিন্তু ব্যবহারের ধরণ, সুবিধা, আর সমস্যা আলাদা। বিশেষ করে বড় স্কেলের প্রজেক্ট আর দলগত কাজের সময় এই পার্থক্যগুলো অনেক গুরুত্বপূর্ণ হয়ে উঠে। নিচে JS আর TS-এর মধ্যে মূল পার্থক্যগুলো ব্যাখ্যা করা হলো:
১. টাইপিং সিস্টেম (Typing System)
JavaScript:
- JS একটা dynamically typed language।
- মানে, একবার যেকোনো টাইপের ভ্যারিয়েবল (variable) ডিক্লেয়ার করে পরে চাইলেই অন্য টাইপের মান দেওয়া যায়।
let value = "Hello";
value = 123; // কোন error দিবে না
TypeScript:
- TS একটা statically typed language।
- এখানে একবার যেই টাইপ declare করা হয়, পরে অন্য টাইপ assign করলে compile timeএ error দেখায়।
let value: string = "Hello";
value = 123; // Error: Type 'number' is not assignable to type 'string'
উপকারিতা:
TypeScript-এ ভুল আগে থেকেই ধরা পড়ে, কিন্তু JavaScript-এ runtime এ গিয়ে বুঝা যায়, যা production environment এ বিপজ্জনক।
২. ফাংশন টাইপিং (Function Typing)
JavaScript:
function add(a, b) {
return a + b;
}
- কোন টাইপ নির্ধারণ নাই, ফলে result অপ্রত্যাশিত হতে পারে।
TypeScript:
function add(a: number, b: number): number {
return a + b;
}
- টাইপ গুলো ঠিক থাকলে, function predictable হয় — bug কম হয়।
৩. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP)
JavaScript:
- JS-এ OOP concepts থাকলেও, প্রকৃতপক্ষে এগুলো syntactic sugar — মানে ভেতরে ভেতরে prototypal inheritance দিয়ে চলে।
class Person {
constructor(name) {
this.name = name;
}
}
TypeScript:
- TS-এ OOP structure অনেক বেশি organized।
- Class, Interface, আর Access Modifiers (public/private/protected) এর মতো advanced feature support করে।
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
}
৪. ত্রুটি (Error) ধরার সময়
JavaScript:
- JS ত্রুটি (error) সাধারণত run-timeএ ধরা পড়ে।
TypeScript:
- TS ত্রুটি গুলো compile-timeএ ধরতে পারে, ফলে সময়মতো ঠিক করা যায়।
৫. দলগত কাজ ও স্কেলেবিলিটি (Team Collaboration & Scalability)
- JavaScript: বড় টিমে কাজ করার সময়, JS-এর dynamic nature এর কারণে bug ধরা ও বুঝা কষ্টকর হয়।
- TypeScript:
- টাইপ সিস্টেম থাকায় code লেখা ও review করা সহজ হয়।
- IDE support যেমন auto-complete, suggestion ইত্যাদি পাওয়া যায়।
- Codebase বড় হলেও maintain করা সহজ।
৬. Browser Support এবং ECMAScript Version নিয়ন্ত্রণ
Browser গুলো সবসময় latest JavaScript features support করে না।
TypeScript-এর সুবিধা:
- TypeScript এর tsconfig.json ফাইল ব্যবহার করে নির্দিষ্ট ECMAScript version select করা যায়।
{
"compilerOptions": {
"target": "ES5"
}
}
- উপরের কোডের মানে হলো, TS compiler তোমার কোডটাকে ES5 compatible JavaScript এ রূপান্তর করে দেবে।
- এইভাবে পুরাতন browser-এও তোমার কোড কাজ করবে।
৭. TypeScript কী সরাসরি Browser-এ চলে?
না, TypeScript সরাসরি browser-এ চলে না।
- কারন Browser TypeScript চিনে না।
- তাই TypeScript কোডকে আগে JavaScript-এ transpile করতে হয়।
let age: number = 30; // TypeScript code
Transpile হলে JavaScript হবে:
var age = 30; // JavaScript output
- এই conversion টা হয় TypeScript Compiler (tsc) এর মাধ্যমে।
৮. অতিরিক্ত সুবিধাসমূহ (Advanced Features in TypeScript)
- Interfaces & Types: Complex structure define করতে সুবিধা।
- Enums: Named constant তৈরি করা যায়।
- Generics: Reusable component বানানো যায়।
- Decorators (Experimental): Meta-programming এর সুবিধা।
interface User {
name: string;
age: number;
}
৯. সারাংশ (Summary Table)
বৈশিষ্ট্য | JavaScript | TypeScript |
---|---|---|
টাইপিং সিস্টেম | Dynamic | Static |
ত্রুটি ধরার সময় | Run-time | Compile-time |
IDE Support | সীমিত | পূর্ণ (Auto-complete, Suggestions) |
শিখতে সহজ | হ্যাঁ | কিছুটা জটিল |
ব্রাউজার সাপোর্ট | সরাসরি চলে | transpile করে চালাতে হয় |
বড় প্রজেক্টে কার্যকারিতা | কষ্টকর | খুব ভালো |
OOP সাপোর্ট | আংশিক (syntactic sugar) | Native-like support (public/private) |
Last updated on