TypeScript এর বেসিক সিনট্যাক্স

টাইপস্ক্রিপ্ট (Typescript) - Web Development

335

TypeScript এর সিনট্যাক্স JavaScript এর সঙ্গে খুবই মিলে, কিন্তু এতে কিছু অতিরিক্ত ফিচার রয়েছে, যেমন টাইপ সিস্টেম, যেগুলি কোডকে আরও শক্তিশালী এবং নির্ভরযোগ্য করে তোলে। নিচে TypeScript এর বেসিক সিনট্যাক্সের কিছু গুরুত্বপূর্ণ ধারণা এবং উদাহরণ দেয়া হলো।


১. ভেরিয়েবল ডিক্লেয়ারেশন

TypeScript এ ভেরিয়েবল ডিক্লেয়ার করার জন্য JavaScript এর মতো let, const, এবং var ব্যবহার করা হয়, তবে TypeScript এ আমরা ভেরিয়েবলের টাইপ নির্দিষ্ট করতে পারি।

উদাহরণ:

let name: string = "Alice";  // string টাইপ
const age: number = 25;      // number টাইপ
let isStudent: boolean = true; // boolean টাইপ

এখানে name ভেরিয়েবলটি string টাইপ, age ভেরিয়েবলটি number টাইপ এবং isStudent ভেরিয়েবলটি boolean টাইপ হিসাবে ডিফাইন করা হয়েছে।


২. টাইপ ইনফারেন্স

TypeScript অনেক সময় স্বয়ংক্রিয়ভাবে টাইপ ইনফার (অনুমান) করতে পারে। অর্থাৎ, আপনি যদি কোনো ভেরিয়েবলের মান প্রদান করেন, TypeScript সেই ভেরিয়েবলের টাইপ অটোমেটিক্যালি ধরবে।

উদাহরণ:

let city = "Dhaka"; // TypeScript automatically infers that city is of type string

এখানে city ভেরিয়েবলটির টাইপ string হিসেবে ইনফার করা হয়েছে, কারণ আমরা "Dhaka" মান দিয়েছি।


৩. ফাংশন ডিক্লেয়ারেশন

TypeScript এ ফাংশন ডিক্লেয়ারেশনে আপনি ফাংশনের ইনপুট প্যারামিটার এবং রিটার্ন টাইপ নির্দিষ্ট করতে পারেন।

উদাহরণ:

function greet(name: string): string {
  return "Hello, " + name;
}

let message = greet("Alice");
console.log(message);

এখানে greet ফাংশনে name প্যারামিটারটি string টাইপ এবং রিটার্ন টাইপও string


৪. অপশনাল প্যারামিটার

TypeScript এ আপনি ফাংশনে প্যারামিটারকে অপশনাল করতে পারেন, অর্থাৎ প্যারামিটারটি অবশ্যই দিতে হবে না। এটি করতে ? চিহ্ন ব্যবহার হয়।

উদাহরণ:

function greet(name: string, age?: number): string {
  if (age) {
    return `Hello, ${name}. You are ${age} years old.`;
  }
  return `Hello, ${name}.`;
}

console.log(greet("Alice"));
console.log(greet("Bob", 30));

এখানে age প্যারামিটারটি অপশনাল। আপনি চাইলে এটি দিতে পারেন, কিন্তু এটি দেওয়া আবশ্যক নয়।


৫. এরে এবং টাপল

এরে:

TypeScript এ আপনি একটি অ্যারে ডিক্লেয়ার করতে টাইপ উল্লেখ করে দিতে পারেন।

let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["Alice", "Bob", "Charlie"];

টাপল:

টাপল হলো এমন একটি ডাটা স্ট্রাকচার, যেখানে একাধিক ডেটার টাইপ ভিন্ন হতে পারে। TypeScript এ এটি টাইপের তালিকা হিসেবে ব্যবহৃত হয়।

let person: [string, number] = ["Alice", 30];

এখানে person টাপলটি একটি string এবং একটি number টাইপের উপাদান ধারণ করে।


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

TypeScript এ ইন্টারফেস ব্যবহার করে আপনি অবজেক্টের স্ট্রাকচার ডিফাইন করতে পারেন। এটি খুবই কার্যকর, বিশেষ করে বড় প্রজেক্টে কোডের অর্গানাইজেশন এবং টাইপ সেফটি নিশ্চিত করতে।

উদাহরণ:

interface Person {
  name: string;
  age: number;
}

let person1: Person = { name: "Alice", age: 25 };

এখানে Person ইন্টারফেসটি একটি অবজেক্টের জন্য name (string টাইপ) এবং age (number টাইপ) প্রপার্টি ডিফাইন করেছে।


৭. ক্লাস (Classes)

TypeScript এ ক্লাস ব্যবহার করে আপনি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণা প্রয়োগ করতে পারেন। এটি ইনহেরিটেন্স, পলিমরফিজম ইত্যাদি ধারণা সমর্থন করে।

উদাহরণ:

class Animal {
  name: string;
  
  constructor(name: string) {
    this.name = name;
  }

  speak(): void {
    console.log(`${this.name} makes a sound.`);
  }
}

let dog = new Animal("Dog");
dog.speak();

এখানে Animal ক্লাসটি একটি name প্রপার্টি এবং speak মেথড ধারণ করে। dog অবজেক্টটি এই ক্লাসের একটি ইনস্ট্যান্স।


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

TypeScript এ জেনেরিকস একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে টাইপ প্যারামিটারাইজড ফাংশন বা ক্লাস তৈরি করতে সাহায্য করে।

উদাহরণ:

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

let result = identity<string>("Hello, World!");
console.log(result);

এখানে identity ফাংশনটি টাইপ প্যারামিটার T ব্যবহার করে, যা যে কোনো টাইপের মান গ্রহণ করতে পারে। আমরা string টাইপটি নির্দিষ্ট করেছি।


৯. এনাম (Enums)

এনাম (Enums) TypeScript এ একটি নামকৃত কনস্ট্যান্ট সেটের জন্য ব্যবহার করা হয়। এটি কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে।

উদাহরণ:

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let dir: Direction = Direction.Up;
console.log(dir);  // 1

এখানে Direction একটি এনাম যা ৪টি ডিরেকশন (Up, Down, Left, Right) নির্দেশ করে।


উপসংহার

TypeScript এর বেসিক সিনট্যাক্স JavaScript এর মতো হলেও, এটি টাইপ সিস্টেম, ক্লাস, ইন্টারফেস, জেনেরিকস ইত্যাদি উন্নত বৈশিষ্ট্য দিয়ে কোডের নিরাপত্তা এবং গুণগত মান উন্নত করতে সাহায্য করে। TypeScript এ বেসিক সিনট্যাক্স শিখে আপনি আরও উন্নত ও স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারবেন।

Content added By

TypeScript একটি স্ট্যাটিক টাইপড ভাষা, যার মানে হলো আপনি ভেরিয়েবল, ফাংশন, প্যারামিটার, এবং রিটার্ন টাইপগুলো স্পষ্টভাবে ডিফাইন করতে পারেন। টাইপ এনোটেশনস (Type Annotations) TypeScript এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা কোডের গুণগত মান বৃদ্ধি করে এবং টাইপ সম্পর্কিত ভুলগুলো কমপাইল টাইমে ধরতে সাহায্য করে। এই গাইডে আমরা TypeScript এর টাইপ এনোটেশনস সম্পর্কে বিস্তারিত আলোচনা করব।


টাইপ এনোটেশন কী?

টাইপ এনোটেশন হলো একটি সুনির্দিষ্ট টাইপ (যেমন, number, string, boolean, ইত্যাদি) ডিফাইন করা যা ভেরিয়েবল বা ফাংশন প্যারামিটার/রিটার্ন ভ্যালুর সাথে সম্পর্কিত। TypeScript এ টাইপ এনোটেশনস ব্যবহার করার মাধ্যমে আমরা কোডের টাইপ চেকিং এবং নিরাপত্তা বাড়াতে পারি।

টাইপ এনোটেশনের উদাহরণ

১. ভেরিয়েবল টাইপ

TypeScript এ ভেরিয়েবলের টাইপ ডিফাইন করা খুব সহজ। টাইপ এনোটেশন ব্যবহার করে আমরা একটি ভেরিয়েবলের জন্য নির্দিষ্ট টাইপ নির্ধারণ করতে পারি।

let age: number = 25;
let name: string = "John";
let isActive: boolean = true;

এখানে, age ভেরিয়েবলটি number টাইপের, name ভেরিয়েবলটি string টাইপের, এবং isActive ভেরিয়েবলটি boolean টাইপের।

২. অ্যারে টাইপ

TypeScript এ আপনি অ্যারের জন্য টাইপ ডিফাইন করতে পারেন। অ্যারের মধ্যে যেসব উপাদান থাকবে, তার টাইপও এখানে ডিফাইন করতে হবে।

let numbers: number[] = [1, 2, 3, 4];
let fruits: string[] = ["apple", "banana", "cherry"];

এখানে, numbers একটি number[] টাইপের অ্যারে এবং fruits একটি string[] টাইপের অ্যারে।

৩. অবজেক্ট টাইপ

TypeScript এ অবজেক্টের জন্যও টাইপ ডিফাইন করা যায়। আপনি অবজেক্টের প্রতিটি প্রপার্টির টাইপ উল্লেখ করতে পারেন।

let person: { name: string, age: number } = { name: "John", age: 30 };

এখানে, person অবজেক্টটির name প্রপার্টি string টাইপের এবং age প্রপার্টি number টাইপের।

৪. ফাংশন টাইপ

TypeScript এ ফাংশনের প্যারামিটার এবং রিটার্ন টাইপও ডিফাইন করা যায়। এটি টাইপ সেফটি নিশ্চিত করে এবং ভুল কম্পাইল টাইমেই ধরতে সাহায্য করে।

function greet(name: string): string {
  return "Hello, " + name;
}

এখানে, greet ফাংশনটি একটি string টাইপের প্যারামিটার নেয় এবং একটি string টাইপের মান রিটার্ন করে।

৫. ফাংশন টাইপ (টাইপ এলিয়াস ব্যবহার করে)

আপনি টাইপ এলিয়াস ব্যবহার করে ফাংশন টাইপও ডিফাইন করতে পারেন। এটি যখন ফাংশনের সাথে একাধিক জায়গায় একই টাইপ ব্যবহার করতে হয়, তখন খুব উপকারী।

type GreetFunction = (name: string) => string;

const greet: GreetFunction = (name) => {
  return "Hello, " + name;
};

এখানে, GreetFunction টাইপ এলিয়াসটি একটি ফাংশন টাইপ ডিফাইন করেছে, যা একটি string প্যারামিটার নেয় এবং একটি string রিটার্ন করে।

৬. ইউনিয়ন টাইপ (Union Types)

TypeScript এ আপনি একাধিক টাইপের মধ্যে নির্বাচন করতে ইউনিয়ন টাইপ ব্যবহার করতে পারেন। এর মানে হলো, একটি ভেরিয়েবল একাধিক টাইপ ধারণ করতে পারে।

let value: number | string = "Hello";
value = 42;  // valid
value = true; // Error: boolean is not assignable to number | string

এখানে, value ভেরিয়েবলটি number বা string টাইপ ধারণ করতে পারে।

৭. এনাম (Enums)

TypeScript এ আপনি এনাম ব্যবহার করে কিছু নির্দিষ্ট মানের জন্য টাইপ ডিফাইন করতে পারেন, যা কোডের স্পষ্টতা বাড়ায় এবং একাধিক মানের মধ্যে সুনির্দিষ্ট নির্বাচন করতে সাহায্য করে।

enum Color {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}

let color: Color = Color.Red;

এখানে, Color নামক এনামটি তিনটি ভ্যালু: Red, Green, এবং Blue ধারণ করে, এবং color ভেরিয়েবলটি Color টাইপ ধারণ করে।


টাইপ এনোটেশন কেন ব্যবহার করবেন?

  1. টাইপ সেফটি: টাইপ এনোটেশন আপনাকে টাইপ সেফটি নিশ্চিত করতে সাহায্য করে, যার মানে আপনি যে টাইপের ভেরিয়েবল, প্যারামিটার বা রিটার্ন ভ্যালু আশা করেন, সেটি কখনো ভুল হবে না।
  2. ডিবাগিং সহজ: টাইপ ভুল থাকলে এটি কম্পাইল টাইমেই ধরা পড়ে, ফলে ডিবাগিং প্রক্রিয়া সহজ হয়।
  3. ইন্টেলিজেন্স এবং অটো কমপ্লিশন: TypeScript IDE গুলোতে টাইপ এনোটেশন ব্যবহারের কারণে অটো-কমপ্লিশন এবং ইন্টেলিজেন্স ফিচার অনেক বেশি কার্যকরী হয়, যা কোড লেখার সময় ভুল কমাতে সাহায্য করে।
  4. প্রজেক্ট স্কেল করা সহজ: বড় প্রজেক্টে টাইপ সিস্টেম ব্যবহার করা কোডের রক্ষণাবেক্ষণ সহজ করে এবং অন্য ডেভেলপারদের জন্য কোড বুঝতে সহায়ক হয়।

উপসংহার

TypeScript এর টাইপ এনোটেশনস কোডের গুণগত মান উন্নত করতে সাহায্য করে। এটি টাইপ সেফটি নিশ্চিত করে এবং কোডে ভুল কমিয়ে আনে। টাইপ এনোটেশন ব্যবহারের মাধ্যমে আপনি আরো সঠিক এবং নিরাপদ কোড লিখতে পারবেন। TypeScript এর টাইপ সিস্টেম প্রোগ্রামারদের জন্য অনেক ধরনের উন্নত ফিচার এবং সুবিধা প্রদান করে, যা JavaScript এ সম্ভব নয়।

Content added By

TypeScript-এ ভেরিয়েবল ডিক্লেয়ার করার জন্য আপনি তিনটি মূল কিওয়ার্ড ব্যবহার করতে পারেন: let, const, এবং var। যদিও JavaScript-এ এই কিওয়ার্ডগুলো ব্যবহৃত হয়, TypeScript-এ এর কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে, যেমন টাইপ চেকিং এবং টাইপ অ্যানোটেশন, যা কোডের সঠিকতা নিশ্চিত করতে সাহায্য করে।


১. let - পরিবর্তনশীল ভেরিয়েবল ডিক্লেয়ার করা

let কিওয়ার্ডটি ব্যবহার করে আপনি একটি ভেরিয়েবল ডিক্লেয়ার করতে পারেন যার মান পরিবর্তনযোগ্য। অর্থাৎ, আপনি পরবর্তীতে এই ভেরিয়েবলটির মান পরিবর্তন করতে পারবেন।

উদাহরণ:

let message: string = "Hello, TypeScript!";
console.log(message); // Output: Hello, TypeScript!
message = "Hello, World!";
console.log(message); // Output: Hello, World!

এখানে message ভেরিয়েবলটি প্রথমে "Hello, TypeScript!" মানে সেট করা হয়েছে, পরে এটি "Hello, World!" মানে আপডেট করা হয়েছে।

TypeScript-এ let:

  • টাইপ সিস্টেম ব্যবহার করে ভেরিয়েবলের টাইপ নির্ধারণ করতে পারা যায়।
  • ভেরিয়েবলটি পরবর্তীতে পরিবর্তনযোগ্য (mutable) হয়।

২. const - অপরিবর্তনশীল ভেরিয়েবল ডিক্লেয়ার করা

const কিওয়ার্ডটি ব্যবহার করে আপনি এমন একটি ভেরিয়েবল ডিক্লেয়ার করতে পারেন যার মান একবার সেট করার পর পরিবর্তন করা যায় না। এক কথায়, এটি "immutable" ভেরিয়েবল তৈরি করে।

উদাহরণ:

const pi: number = 3.14159;
console.log(pi); // Output: 3.14159
// pi = 3.14; // Error: Assignment to constant variable.

এখানে, pi ভেরিয়েবলটি একবার নির্দিষ্ট মানে সেট করা হলে পরবর্তীতে এটি পরিবর্তন করা যাবে না।

TypeScript-এ const:

  • const ব্যবহার করে যখন আপনি কোনো ভেরিয়েবল ডিক্লেয়ার করেন, তখন তার মান অপরিবর্তনীয় (immutable) হয়ে যায়।
  • const দিয়ে ডিক্লেয়ার করা ভেরিয়েবলটি অবশ্যই একটি মান সেট করা উচিত।

৩. var - পুরনো স্টাইলের ভেরিয়েবল ডিক্লেয়ার করা

var কিওয়ার্ডটি JavaScript-এ পুরনো ধরনের ভেরিয়েবল ডিক্লেয়ার করতে ব্যবহৃত হয়। TypeScript-এ var ব্যবহৃত হলেও এটি কিছুটা পুরনো এবং সুপারিশ করা হয় না। var ব্যবহারের ফলে কিছু সমস্যাও সৃষ্টি হতে পারে, যেমন স্কোপ (scope) সংক্রান্ত সমস্যা।

উদাহরণ:

var greeting: string = "Hello, TypeScript!";
console.log(greeting); // Output: Hello, TypeScript!
greeting = "Hello, JavaScript!";
console.log(greeting); // Output: Hello, JavaScript!

এখানে greeting ভেরিয়েবলটি var দিয়ে ডিক্লেয়ার করা হয়েছে এবং এর মান পরিবর্তন করা হয়েছে।

TypeScript-এ var:

  • var ভেরিয়েবলটি ব্লক স্কোপের পরিবর্তে ফাংশন স্কোপে কাজ করে, যা কখনো কখনো অপ্রত্যাশিত ফলাফল দিতে পারে।
  • let এবং const এর তুলনায় var কম নিরাপদ এবং আধুনিক JavaScript কোডে এটি ব্যবহার করা এড়িয়ে চলা উচিত।

৪. TypeScript-এ টাইপ অ্যানোটেশন এবং ভেরিয়েবল ডিক্লেয়ারেশন

TypeScript-এ, ভেরিয়েবল ডিক্লেয়ার করার সময় আপনি টাইপ অ্যানোটেশন ব্যবহার করে ভেরিয়েবলের টাইপ নির্দিষ্ট করতে পারেন, যা কোডের সঠিকতা বাড়াতে সাহায্য করে। যেমন:

উদাহরণ:

let age: number = 25; // number টাইপের ভেরিয়েবল
const isStudent: boolean = false; // boolean টাইপের ভেরিয়েবল
let name: string = "John Doe"; // string টাইপের ভেরিয়েবল

এখানে, age ভেরিয়েবলটি number, isStudent ভেরিয়েবলটি boolean, এবং name ভেরিয়েবলটি string টাইপের।

TypeScript-এর টাইপ সিস্টেম ভেরিয়েবলের টাইপ চেক করে এবং ভুল টাইপ অ্যাসাইন করলে কম্পাইল টাইমে ত্রুটি দেখাবে। এটি কোডের সঠিকতা নিশ্চিত করে এবং ডেভেলপারদের ভুল টাইপ ব্যবহার থেকে বিরত রাখে।


৫. উপসংহার

  • let: পরিবর্তনশীল ভেরিয়েবল ডিক্লেয়ার করার জন্য ব্যবহৃত হয়। এটি ব্লক স্কোপে থাকে এবং মান পরিবর্তনযোগ্য।
  • const: অপরিবর্তনীয় ভেরিয়েবল ডিক্লেয়ার করার জন্য ব্যবহৃত হয়। একবার মান সেট করলে এটি পরিবর্তন করা যায় না।
  • var: পুরনো JavaScript কিওয়ার্ড যা ফাংশন স্কোপে কাজ করে। এটি TypeScript-এ খুব একটা ব্যবহৃত হয় না।

TypeScript-এ let এবং const ব্যবহারের মাধ্যমে নিরাপদ এবং সহজ কোড লেখা সম্ভব, যেখানে var ব্যবহারের থেকে এড়িয়ে চলা উচিত।

Content added By

TypeScript এ ফাংশন টাইপিং আপনাকে ফাংশনগুলির ইনপুট (প্যারামিটার) এবং আউটপুট (রিটার্ন ভ্যালু) টাইপ সুনির্দিষ্টভাবে ঘোষণা করতে সাহায্য করে। এটি কোডের মান এবং সঠিকতা বৃদ্ধি করতে সাহায্য করে, যাতে আপনি ভুল টাইপ বা অনুপস্থিত আর্গুমেন্ট ব্যবহার না করেন।

ফাংশন টাইপিং এর মাধ্যমে আপনি TypeScript কে বলে দিতে পারেন কিভাবে ফাংশনটি ব্যবহার করা উচিত। এখানে আমরা ফাংশন টাইপিং এর বিভিন্ন দিক সম্পর্কে আলোচনা করব।


১. ফাংশনের প্যারামিটার টাইপিং

TypeScript এ, ফাংশনের প্যারামিটারগুলির টাইপ ডিফাইন করা খুবই সহজ। আপনি প্যারামিটার টাইপ ঘোষণা করতে পারেন কলন (:) এর পর।

উদাহরণ:

function greet(name: string): void {
  console.log(`Hello, ${name}`);
}

greet("John");  // সঠিক
greet(123);     // ভুল, কারণ প্যারামিটারটি number টাইপ

এখানে greet ফাংশনটি একটি string টাইপের প্যারামিটার নেয় এবং কিছু রিটার্ন করে না (তাহলে void টাইপ ব্যবহার হয়েছে)।


২. ফাংশনের রিটার্ন টাইপিং

TypeScript ফাংশনের রিটার্ন ভ্যালুর টাইপও নির্ধারণ করতে সাহায্য করে। ফাংশনের পরে কলন (:) এবং টাইপ লিখে রিটার্ন টাইপ সুনির্দিষ্ট করা যায়।

উদাহরণ:

function add(a: number, b: number): number {
  return a + b;
}

let result = add(5, 3);  // সঠিক
let result2 = add("5", "3"); // ভুল, কারণ প্যারামিটারগুলি string

এখানে add ফাংশনটি দুটি number টাইপের প্যারামিটার নেয় এবং একটি number রিটার্ন করে।


৩. অপশনাল প্যারামিটার

TypeScript এ, আপনি চাইলে প্যারামিটারগুলিকে অপশনাল বানাতে পারেন। এর জন্য প্যারামিটার নামের পরে ? চিহ্ন ব্যবহার করতে হবে। এটি মানে, ফাংশনটি সেই প্যারামিটার ছাড়াও কাজ করতে পারবে।

উদাহরণ:

function greet(name: string, age?: number): void {
  console.log(`Hello, ${name}`);
  if (age !== undefined) {
    console.log(`You are ${age} years old.`);
  }
}

greet("Alice");       // সঠিক, age প্যারামিটার অনুপস্থিত
greet("Bob", 25);     // সঠিক, age প্যারামিটার দেওয়া হয়েছে

এখানে age প্যারামিটারটি অপশনাল, তাই আপনি চাইলে এটি না দিয়ে ফাংশনটি কল করতে পারেন।


৪. ডিফল্ট প্যারামিটার

TypeScript এ, আপনি প্যারামিটারগুলির জন্য ডিফল্ট মানও সেট করতে পারেন। যদি ফাংশন কল করার সময় ঐ প্যারামিটারটি না দেওয়া হয়, তাহলে ডিফল্ট মান ব্যবহৃত হবে।

উদাহরণ:

function greet(name: string, age: number = 30): void {
  console.log(`Hello, ${name}`);
  console.log(`You are ${age} years old.`);
}

greet("Alice");       // সঠিক, age প্যারামিটারটি ডিফল্ট মান 30 নেয়
greet("Bob", 25);     // সঠিক, age প্যারামিটারটি 25 নেয়

এখানে, age প্যারামিটারটির ডিফল্ট মান 30 দেওয়া হয়েছে। তাই আপনি age প্যারামিটার না দিলেও এটি 30 হিসেবে ব্যবহার হবে।


৫. ফাংশন টাইপ অ্যালিয়াস

TypeScript এ, আপনি ফাংশন টাইপ অ্যালিয়াসও তৈরি করতে পারেন। এর মাধ্যমে আপনি ফাংশনের প্যারামিটার এবং রিটার্ন টাইপকে একটি টাইপ ভেরিয়েবল হিসাবে সংজ্ঞায়িত করতে পারেন।

উদাহরণ:

type GreetFunction = (name: string, age: number) => void;

const greet: GreetFunction = (name, age) => {
  console.log(`Hello, ${name}`);
  console.log(`You are ${age} years old.`);
};

greet("Alice", 25);  // সঠিক

এখানে, GreetFunction নামে একটি টাইপ অ্যালিয়াস তৈরি করা হয়েছে, যা একটি ফাংশনের প্যারামিটার এবং রিটার্ন টাইপ নির্ধারণ করে।


৬. ফাংশন সাইনেচার (Signature)

ফাংশনের সাইনেচার হল সেই কনস্ট্রেইনট যা নির্ধারণ করে যে, ফাংশনটি কিভাবে কল হবে, কোন ধরনের প্যারামিটার নিবে, এবং কোন ধরনের রিটার্ন ভ্যালু দিবে।

উদাহরণ:

let add: (a: number, b: number) => number;

add = (x, y) => x + y;

console.log(add(2, 3));  // 5

এখানে, আমরা add ফাংশনের জন্য একটি সাইনেচার ডিফাইন করেছি, যা দুটি number প্যারামিটার নেয় এবং একটি number রিটার্ন করে।


সারাংশ

TypeScript এ ফাংশন টাইপিং কোডের সঠিকতা বৃদ্ধি করে এবং এর ব্যাবহারকারীকে টাইপ সম্পর্কিত ভুল এড়াতে সাহায্য করে। আপনি ফাংশনের প্যারামিটার, রিটার্ন টাইপ, অপশনাল প্যারামিটার, ডিফল্ট প্যারামিটার, এবং ফাংশন টাইপ অ্যালিয়াস ব্যবহার করে কোডের মান উন্নত করতে পারেন। TypeScript এর এই ফিচারগুলো আপনাকে আরও শক্তিশালী এবং টাইপ সেফ কোড লিখতে সাহায্য করবে।

Content added By

TypeScript কোডের .ts ফাইলকে .js ফাইলে রূপান্তর করার প্রক্রিয়াকে কম্পাইলেশন বলা হয়। TypeScript কোডের কম্পাইলেশন সাধারণত TypeScript কম্পাইলার (tsc) দ্বারা পরিচালিত হয়। এই প্রক্রিয়াটি কোডের টাইপ চেকিং এবং JavaScript কোডে রূপান্তর করা অন্তর্ভুক্ত।

এখানে TypeScript কম্পাইলেশন প্রক্রিয়া এবং .ts ফাইল থেকে .js ফাইল তৈরি করার বিস্তারিত প্রক্রিয়া আলোচনা করা হলো।


১. TypeScript কম্পাইলার (tsc)

TypeScript কম্পাইলার (tsc) হলো মূল টুল যা .ts ফাইলকে .js ফাইলে রূপান্তরিত করে। এটি আপনার কোডে টাইপ সম্পর্কিত ত্রুটি চেক করে এবং সেগুলিকে নির্দেশ করে, যা JavaScript কোডে রূপান্তরের সময় খুঁজে পাওয়া যায় না।


২. কম্পাইলেশন প্রক্রিয়া (tsc)

১. টেমপ্লেট বা ফাইলের অন্তর্ভুক্তি

প্রথমত, TypeScript প্রজেক্টে .ts ফাইলগুলিকে ইনক্লুড করা হয়। এটি সাধারণত tsconfig.json ফাইলে করা হয়, যেখানে আপনি নির্দিষ্ট করেন কোন ফোল্ডার বা ফাইলগুলো কম্পাইল করা হবে।

tsconfig.json ফাইলে যদি include বা exclude অপশন ব্যবহার করা হয়, তাহলে এই ফাইলের মধ্যে সমস্ত ফাইলগুলোর উপর কাজ করা হবে।

উদাহরণস্বরূপ:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs"
  },
  "include": ["src/**/*"]
}

এখানে, src ফোল্ডারে থাকা সমস্ত .ts ফাইল কম্পাইল হবে।

২. TypeScript কম্পাইলার রান করা

TypeScript কম্পাইলার রান করতে টার্মিনালে tsc কমান্ড ব্যবহার করতে হয়। যদি আপনার প্রজেক্টের মূল ডিরেক্টরিতে tsconfig.json ফাইল থাকে, তাহলে আপনি সরাসরি tsc কমান্ড চালাতে পারেন:

tsc

এই কমান্ডটি tsconfig.json ফাইলের নির্দেশনা অনুসারে সমস্ত .ts ফাইল কম্পাইল করে .js ফাইলে পরিণত করবে।

৩. একক ফাইল কম্পাইল করা

যদি আপনি একটি নির্দিষ্ট .ts ফাইল কম্পাইল করতে চান, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

tsc src/index.ts

এটি শুধুমাত্র index.ts ফাইলটিকে কম্পাইল করে .js ফাইলে রূপান্তরিত করবে।


৩. কম্পাইলেশন অপশনস (Compiler Options)

TypeScript কম্পাইলারের অনেক অপশন রয়েছে যা আপনার কম্পাইলেশন প্রক্রিয়াকে কাস্টমাইজ করতে সাহায্য করে। কিছু গুরুত্বপূর্ণ কম্পাইলার অপশন নিচে দেওয়া হলো:

  • target: নির্দিষ্ট করে কোন JavaScript সংস্করণে কম্পাইল করা হবে। উদাহরণস্বরূপ, es5, es6 (ES2015), ইত্যাদি।

    "compilerOptions": {
      "target": "es5"
    }
    
  • module: মডিউল সিস্টেমের ধরনের নির্বাচন। যেমন commonjs, es6, amd, ইত্যাদি।

    "compilerOptions": {
      "module": "commonjs"
    }
    
  • outDir: .js ফাইলগুলো যেখানে আউটপুট হবে। সাধারণত একটি আলাদা dist ফোল্ডারে ফাইলগুলো রাখতে হয়।

    "compilerOptions": {
      "outDir": "./dist"
    }
    
  • strict: সমস্ত স্ট্রিক টাইপ চেকিং অপশনগুলিকে সক্রিয় করে।

    "compilerOptions": {
      "strict": true
    }
    
  • esModuleInterop: ES6 মডিউল ইন্টারঅপারেবিলিটি সক্ষম করে।

    "compilerOptions": {
      "esModuleInterop": true
    }
    
  • skipLibCheck: টাইপ লাইব্রেরি চেকিং বাদ দেয় (প্যাকেজ ম্যানেজারগুলোর জন্য উপকারী)।

    "compilerOptions": {
      "skipLibCheck": true
    }
    

৪. উদাহরণ: .ts ফাইল থেকে .js ফাইল তৈরি

ধরা যাক, আপনার একটি index.ts ফাইল আছে যেখানে আপনি TypeScript কোড লিখেছেন:

// src/index.ts
let greeting: string = "Hello, TypeScript!";
console.log(greeting);

এখন, tsc কম্পাইলার ব্যবহার করে এটি .js ফাইলে রূপান্তর করুন:

tsc src/index.ts

এই কমান্ডটি index.ts ফাইলটি কম্পাইল করে index.js ফাইলে পরিণত করবে। .js ফাইলটি দেখতে এমন হবে:

// index.js
"use strict";
var greeting = "Hello, TypeScript!";
console.log(greeting);

এখন আপনি index.js ফাইলটি JavaScript হিসেবে চালাতে পারবেন।


৫. অটো কম্পাইলেশন (Watch Mode)

যদি আপনি TypeScript কোডে কোনো পরিবর্তন করেন এবং সেই পরিবর্তন স্বয়ংক্রিয়ভাবে কম্পাইল করতে চান, তবে আপনি Watch Mode ব্যবহার করতে পারেন। এটি TypeScript কোড পরিবর্তিত হলে স্বয়ংক্রিয়ভাবে কম্পাইল করে।

Watch Mode চালাতে:

tsc --watch

এটি আপনার সমস্ত .ts ফাইলের জন্য পরিবর্তন সনাক্ত করবে এবং স্বয়ংক্রিয়ভাবে .js ফাইলে রূপান্তর করবে।


উপসংহার

TypeScript কম্পাইলেশন প্রক্রিয়া সোজা এবং কার্যকরী। tsc কমান্ড ব্যবহার করে আপনি সহজেই .ts ফাইল থেকে .js ফাইল তৈরি করতে পারেন। tsconfig.json ফাইলের মাধ্যমে আপনি আপনার প্রজেক্টের কনফিগারেশন কাস্টমাইজ করতে পারেন, এবং কম্পাইলেশন অপশনগুলো পরিবর্তন করে আপনার কোডের কার্যকারিতা এবং আউটপুট আরও নির্ভুলভাবে নিয়ন্ত্রণ করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...