Skip to Content
TypeScriptExplore Basics Types of TypeScriptJavaScript vs TypeScript

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 timeerror দেখায়।
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)

বৈশিষ্ট্যJavaScriptTypeScript
টাইপিং সিস্টেমDynamicStatic
ত্রুটি ধরার সময়Run-timeCompile-time
IDE Supportসীমিতপূর্ণ (Auto-complete, Suggestions)
শিখতে সহজহ্যাঁকিছুটা জটিল
ব্রাউজার সাপোর্টসরাসরি চলেtranspile করে চালাতে হয়
বড় প্রজেক্টে কার্যকারিতাকষ্টকরখুব ভালো
OOP সাপোর্টআংশিক (syntactic sugar)Native-like support (public/private)

Last updated on