S J N
  • Home
  • About Me
  • Projects
  • Blogs
  • Contact

"The only way to do great work is to love what you do." - Steve Jobs

© 2025 Shofiqul Islam Sujon. All rights reserved.

TypeScript: A Statically Typed JavaScript Superset

Created At: 2/15/2025

TypeScript: A Statically Typed JavaScript Superset

JavaScript মডার্ন ওয়েব ডেভেলপমেন্টের মূল চালিকাশক্তি হলেও, অ্যাপ্লিকেশন বড় হওয়ার সাথে সাথে বাগ ধরা এবং কোড মেইনটেইন করা কঠিন হয়ে পড়ে। TypeScript হলো Microsoft-এর তৈরি একটি ওপেন-সোর্স ল্যাঙ্গুয়েজ, যা JavaScript-এর ওপর একটি Statically Typed Superset হিসেবে কাজ করে। এটি ডেভেলপমেন্টের সময়ই টাইপ সেফটি নিশ্চিত করে এবং কোড রান করার আগে ক্লিন JavaScript-এ কম্পাইল হয়।

কেন TypeScript ব্যবহার করবেন? (Key Benefits)

  • Static Typing: রানটাইমে এরর খাওয়ার বদলে ডেভেলপমেন্ট বা কোড লেখার সময়ই টাইপ-সম্পর্কিত বাগগুলো ধরা পড়ে।

  • Better Developer Experience: চমৎকার IDE সাপোর্ট, দ্রুত Auto-completion (IntelliSense) এবং সহজে কোড Refactor করার সুবিধা।

  • Self-Documenting Code: ভ্যারিয়েবল এবং ফাংশনের টাইপ উল্লেখ থাকায় কোড নিজে থেকেই একটি ডকুমেন্টেশনের মতো কাজ করে, ফলে টিমের অন্য ডেভেলপারদের বুঝতে সুবিধা হয়।

  • Object-Oriented Programming (OOP): বড় স্কেলের অ্যাপ্লিকেশনের জন্য Interfaces, Generics, এবং Access Modifiers-এর মতো আধুনিক ফিচার সরবরাহ করে।

  • Smooth JavaScript Migration: যেকোনো ভ্যালিড JavaScript কোডই TypeScript-এ কাজ করে। তাই বিদ্যমান প্রোজেক্টে ধীরে ধীরে TypeScript অ্যাডপ্ট করা সম্ভব।

ইন্সটলেশন ও সেটআপ (Installation)

TypeScript গ্লোবালি ইন্সটল করার কমান্ড:

Bash

npm install -g typescript

সঠিকভাবে ইন্সটল হয়েছে কিনা চেক করতে:

Bash

tsc --version

বেসিক সিনট্যাক্স ও কোড এক্সাম্পল

১. প্রিমিটিভ টাইপস (Primitive Types)

ডেটা টাইপ যেমন string, number, বা boolean সরাসরি উল্লেখ করা যায়:

TypeScript

let name: string = "John";
let age: number = 30;
let isDeveloper: boolean = true;

২. ফাংশন অ্যানোটেশন (Function Annotations)

ফাংশনের প্যারামিটার এবং রিটার্ন ভ্যালুর টাইপ নির্দিষ্ট করে দেওয়া:

TypeScript

function greet(name: string): string {
return `Hello, ${name}!`;
}

console.log(greet("Alice"));

৩. ইন্টারফেস (Interfaces)

যেকোনো অবজেক্টের স্ট্রাকচার বা ব্লুপ্রিন্ট ডিফাইন করার জন্য ইন্টারফেস ব্যবহার করা হয়:

TypeScript

interface User {
id: number;
name: string;
isAdmin: boolean;
}

const user: User = {
id: 1,
name: "John",
isAdmin: true
};

৪. ক্লাস ও অ্যাক্সেস মডিফায়ার (Classes & OOP)

অবজেক্ট-ওরিয়েন্টেড স্টাইলে কোড লেখার জন্য private, public, বা protected মডিফায়ার ব্যবহার:

TypeScript

class Person {
constructor(private name: string, private age: number) {}

introduce(): string {
return `My name is ${this.name} and I am ${this.age} years old.`;
}
}

const person = new Person("Alice", 25);
console.log(person.introduce());

৫. জেনেরিকস (Generics)

রিইউজেবল (Reusable) এবং টাইপ-সেফ ফাংশন বা কম্পোনেন্ট তৈরি করতে:

TypeScript

function identity<T>(value: T): T {
return value;
}

console.log(identity<string>("Hello"));
console.log(identity<number>(42));

প্রোজেক্ট কনফিগারেশন (tsconfig.json)

প্রোজেক্টের রুট ডিরেক্টরিতে কম্পাইলার সেটিংস কনফিগার করতে tsconfig.json তৈরি করুন:

JSON

{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"strict": true,
"outDir": "./dist"
},
"include": ["src/**/*"]
}

TypeScript ফাইল কম্পাইল করার জন্য রান করুন:

Bash

tsc

JavaScript-এর ফ্লেক্সিবিলিটির সাথে এন্টারপ্রাইজ-লেভেল নির্ভরযোগ্যতা যোগ করতে TypeScript বর্তমানে ফ্রন্টএন্ড এবং ব্যাকএন্ড—উভয় ডেভেলপমেন্টের জন্যই একটি স্ট্যান্ডার্ড ইন্ডাস্ট্রি চয়েস।

← Back to Blog List