TypeScript Syntax
প্রিয় ডেভেলপারস! আসসালামু আলাইকুম, আশা করি ভালো আছেন। আজকের ব্লগে TypeScript এর Syntax সম্পর্কে বিস্তারিত টিউটোরিয়াল আপনাদের মাঝে শেয়ার করবো, আশা করি আপনারা উপকৃত হবেন। তাহলে শুরু করা যাক…
JavaScript
এ যে সকল Syntax বা ডাটা টাইপ ব্যবহার করে থাকি, তেমনি TypeScript ও একই ডাটা টাইপ ব্যবহার করতে পারি। তবে TypeScript এছাড়াও কিছু অতিরিক্ত ডাটা টাইপ, ইনটারফেস, ক্লাসসহ আরও কিছু সুযোগ সুবিধা প্রদান করে থাকে।
TypeScript Syntax লেখার পূর্বে একটি উদাহরণ নিয়ে আলোচনা করা যাক –
[
const siteName: string = 'Notesaid24';
]
const:
আমরা যে কোন Variable কিওয়ার্ড এর মাধ্যমে লিখতে পারি। এমন কিছু কিওয়ার্ড হলো যেমন – var, let এবং const। উপরোক্ত উদাহরণে আমরা ‘const’ কিওয়ার্ড ব্যবহার করা হয়েছে।
siteName:
string – এখানে ‘siteName’ Variable নাম হিসেবে ব্যবহার করা হয়েছে এবং Variable নামে পর (: string) এর মূল উদ্দেশ্য হলো ভ্যারিয়বল Value এর ডাটা টাইপ অনুযায়ী “string, number, array, boolean, null, undefined,
object, void, tuple, enum, any, never, union” ইত্যাদি বসে।
নোটঃ এই type লেখার জন্য (: type) এই চিহ্নটি Variable,
Parameter এবং Object Properties নামের পরে ব্যবহার করতে হয়। আর এই চিহ্ন (: type) কে Type Annotation বলে।
নিম্নে ডাটা টাইপগুলোর সম্পর্কে “string, number, array, boolean, null, undefined,
object, void, tuple, enum, any, never, union” উদাহরণসহ বিস্তারিত আলোচনা করা হলো –
TypeScript এ String লেখার নিয়ম
string এর মধ্যে যে কোন রকমের ডাটা রাখা যায়, যেমন – লেটার, নাম্বার এবং সিম্বল ইত্যাদি রাখা যায়। তবে string লেখার জন্য Single Quote
(‘’) অথবা Double Quote (“”) এর মধ্যে লিখতে হয়। যেমন –
[
const singleQuote: string = 'This is a single quote string.';
const doubleQuote: string = "This is a double quote string.";
const lettterString: string = "Notesaid24";
const numberString: string = "24";
]
TypeScript এ Number লেখার নিয়ম
number এর মধ্যে integer (পূর্ণসংখ্যা) এবং floating-point
(দশমিক সংখ্যা) রাখা যায়। যেমন –
[
let intNumber: number = 13; // integer number
let floatNumber: number = 13.5; // floating-point number
]
TypeScript এ Array লেখার নিয়ম
TypeScript এ Array লেখার সময়
Type Annotations (:) এর পরে Array তে রাখা ডাটা
টাইপের অনুযায়ী Data Type বসবে এবং এর পরে Square
Bracket (string: []) দিতে হয়। যেমন –
[
let numberArray: number[] = [1, 2, 3, 4, 5];
let stringArray: string[] = ["Notesaid24", "TypeScript"];
let numberArray: Array<number> = [1, 2, 3, 4, 5];
let stringArray: Array<string> = ["Notesaid24", "TypeScript"];
]
TypeScript এ Object লেখার নিয়ম
TypeScript এ Object সাধারণভাবে লিখা যায়, কিন্তু Object এ বিভিন্ন রকম ডাটা টাইপ নিয়ে কাজ করতে
হয় তার জন্য TypeScript এ বিল্ট-ইন টাইপ
লেখার জন্য “types এবং interface” রয়েছে। যার মাধ্যমে প্রথমে Object এর মধ্যে প্রত্যেকটি
Value এর ডাটা টাইপ key এর মধ্যে ডিফাইন করতে হয়। তারপর ডিফাইনকৃত types / interface, Type Annotation
এর মাধ্যমে ভ্যারিয়বলের পরে পাঠাতে হয়। তবে types / interface ব্যবহার নিয়ে অন্য কোনো ব্লগে বিস্তারিত আলোচন
করবো ইনশাআল্লাহ্। এখন আমরা Object এর কিছু উদাহরণ দেখে নিব –
[
let myObj: object = { key: "value" }; // Using Common Types
]
TypeScript
এর types এর মাধ্যমে Object লিখার নিয়ম –
[
type PersonType = {
firstName: string;
lastName: string;
age: number;
email?: string; // Optional property
};
]
[
// Creating an object that adheres to the defined type
let person1: PersonType = {
firstName: "Ahshan",
lastName: "Habib",
age: 10,
email: "habib@gmail.com",
};
]
TypeScript
এর interface এর মাধ্যমে Object লিখার নিয়ম –
[
// Using interface to define the structure of an object
interface PersonInterface {
firstName: string;
lastName: string;
age: number;
email?: string; // Optional property
}
// Creating an object that adheres to the defined interface
let person2: PersonInterface = {
firstName: "Ahshan",
lastName: "Habib",
age: 10,
email: "habib@gmail.com",
};
]
TypeScript এ Functions লেখার নিয়ম
Typescript এ Regular
Function এবং Arrow Function উভয় লেখা যায়, তবে Functions এর প্যারামিটার এবং Functions এর Return টাইপ Type Annotations এর মাধ্যমে ডিফাইন করা যায়।
Regular
Function with Type Annotations:
[
// Function that adds two numbers and returns the result
function addNumbers(a: number, b: number): number {
return a + b;
}
console.log(addNumbers(5, 6));
// Function that concatenates two strings and returns the result
function concateStrings(str1: string, str2: string): string {
return `${str1} ${str2}`;
}
console.log(concateStrings("Welcome To", "Notesaid24.com"));
// Or
const str1 = "Welcome To";
const str2 = "Notesaid24.com";
console.log(concateStrings(str1, str2));
]
Arrow
Function with Type Annotations:
[
// Function that adds two numbers and returns the result
const addNumbers = (a: number, b: number): number => {
return a + b;
};
console.log(addNumbers(5, 6));
// Function that concatenates two strings and returns the result
const concateStrings = (str1: string, str2: string): string => {
return `${str1} ${str2}`;
};
console.log(concateStrings("Welcome To", "Notesaid24.com"));
// Or
const str1 = "Welcome To";
const str2 = "Notesaid24.com";
console.log(concateStrings(str1, str2));
]
TypeScript এ Boolean লেখার নিয়ম
সাধারণত Boolean “true এবং false” এই দুইটি ভ্যালু কে নির্দেশনা করে। শর্ত সাপেক্ষে কাজের জন্য Boolean ব্যবহার করা হয়।
[
const isDone: boolean = false;
const isExists: boolean = true;
]
TypeScript এ Tuple লেখার নিয়ম
TypeScript এর নিজস্ব বিল্ট-ইন Type “Tuple” সম্পর্কে কিছু গুরুত্বপূর্ণ কথা জেনে রাখি –
- Tuple – Array এর মতো কাজ করে এবং Tuple এর length ও type আগে থেকে ডিফাইন করা যায়।
- Tuple এর মাধ্যমে Array এর প্রত্যেকটি উপাদান কে Value হিসেবে ব্যবহার করা যায়।
- Tuple এ ব্যবহারকৃত প্রত্যেকটি ইলিমেন্ট নিজস্ব Order মেনে চলে। Order এর বিপরীত হলে error দিয়ে দেয়।
- Tuple এর মাধ্যমে একইসাথে বিভিন্ন ধরনের ডাটা টাইপ রাখা যায়।
👉 Tuple ডিফাইন করা – const myTuple : [string, number,
boolean]
👉 Tuple ইনিশিয়ালাইজড – myTuple = [‘Notesaid24’, 0000,
true]
👉 Tuple ইনিশিয়ালাইজড করার সময়
প্রথমে string => ‘Notesaid24’, দ্বিতীয়তে number => 0000 এবং তৃতীয়তে boolean => true দেওয়া হয়েছে।
নোটঃ Tuple ইনিশিয়ালাইজড করার সময় কোন ভ্যালু যদি না দিতে চাই বা ততটা গুরুত্বপূর্ণ
না এক্ষেত্রে স্কিপ করার জন্য Optional Tuple (?) ব্যবহার করতে হয়।
Optional Tuple (?) Tuple ডিফাইন করা – const
myTuple : [string, number, boolean?]
Optional Tuple (?) Tuple ইনিশিয়ালাইজড – myTuple = [‘Notesaid24’, 0000]
Tuple ইনিশিয়ালাইজড করার সময়
প্রথমে string => ‘Notesaid24’, দ্বিতীয়তে number => 0000 এবং তৃতীয়তে boolean => ভ্যালু দিলে হবে বা না দিলেও কোডে সমস্যা হবে না।
TypeScript এ enum লেখার নিয়ম
TypeScript এ
enum এমন একটি ডাটা টাইপ যেখানে আমরা নির্দিষ্ট কিছু Constant নিয়ে কাজ করতে পারি (string,
number) এবং এর অন্যতম বৈশিষ্ট্য হলো ডুফলিকেট ভ্যালু রাখা যায় না। enum এর মধ্যমে কোডের Readability এবং
Maintainability উন্নত করে।
[
// Enum declaration
enum Color {
Red,
Green,
Blue,
}
// Using the enum
let myColor: Color = Color.Green;
console.log("Selected color:", myColor); // Outputs: 1
]
TypeScript এ union টাইপ লেখার নিয়ম
TypeScript এর মাধ্যমে একই Variable এ বিভিন্ন ধরনের ডাটা ষ্টোর করা যায়। আর এই বিভিন্ন ধরনের ডাটা ষ্টোর করে রাখা
কে Union
Type বলে। Union টাইপ লেখার জন্য (|) এই সিন্ট্যাক্স ব্যবহার করতে হয়। সিন্ট্যাক্স মনে রাখার সহজ উপায় হলো JavaScript এর Logical
or Operator (||) TypeScript তা Union Type
Operator এবং এর সিনট্যাক্স হলো – (|)
[
function retuurnStrAndNum(a: string | number) {
if (typeof a === "string") {
return a.length;
} else {
return a * a;
}
}
const str = retuurnStrAndNum("notesaid24.com");
const num = retuurnStrAndNum(5);
console.log({ strValue: str, numValue: num });
]
সমস্যাঃ ধরেন কেউ আপনাকে বললো, এমন একটা ফাংশন তৈরি করতে হবে যে ফাংশনের কাজ হলো একই সাথে value হিসেবে string, number টাইপের প্যারামিটার নিবে এবং value যদি number
হয় তাহলে তার square রিটার্ন করবে এবং value যদি string হয় তাহলে তার length রিটার্ন করবে এবং আর value যদি string বা number ব্যাতিত অন্য টাইপের
হয় তাহলে error রিটার্ন করবে। উপরিল্লোখিত সমস্যাটি আমরা
Union
Type এর মাধ্যমে সমাধান করার চেষ্টা করবো –
[
const addValue = (a: string | number | any) => {
if (typeof a === "number") {
return a * a;
} else if (typeof a === "string") {
return a.length;
} else {
return `Parameters must be numbers or strings`;
}
};
console.log(addValue("Notesaid24"));
console.log(addValue(5));
console.log(addValue(null));
]
কোড বিশ্লেষণঃ
এখানে, addValue ফাংশনের প্যারামিটার হিসাবে “a” নামে একটি প্যারামিটার নিয়েছে। তার ভ্যালু হিসেবে number এবং string নিয়েছি। কিন্তু সমস্যার মধ্যে উল্লেখ আছে যে, যদি number এবং string এর বাহিরে অন্য কোনো ডাটা ভ্যালু হিসেবে পাঠানো হয় তাহলে error দিবে। এখানে ইউজার কি ডাটা পাঠাবে তা আমাদের কাছে অজানা, তার জন্য number এবং string এর পরে any দেওয়া হয়েছে। ইউজার যদি number এবং string এর বাহিরে অন্য কোন ডাটা পাঠায় তাহলে তা any এর মাধ্যমে জানতে পারবো।
TypeScript এ অনেক রকম Type Checking Guard রয়েছে তার মধ্যে সবচেয়ে অধিক ব্যবহৃত Type Checking Guard হলো “typeof”। আমরা typeof এর মাধ্যমে অতি সহজে ইউজার কোন রকম ডাটা Argument হিসেবে দিচ্ছে এবং ফাংশনে প্যারামিটার হিসেবে গ্রহণ করতেছে তা জানতে পারবো।
প্যারামিটার number বা string কিনা তা জানার জন্য if ব্লক ব্যবহার করা হয়েছে এবং Type Checking Guard এর “typeof” এর মাধ্যমে প্যারামিটার number হলে square রিটার্ন করতেছি এবং string হলে তার length রিটার্ন করতেছি এবং number বা string ছাড়া অন্য ডাটা টাইপ হলে error রিটার্ন করতেছি।
সর্বোপরি, বলা যায় যে Union Type, TypeScript এর অন্যতম Fetured, যা ব্যবহার করার মাধ্যমে অতি সহজে
যে কোন জটিল সমস্যা সমাধান করতে পারবো। আশা করি এই সিরিজে সামনে এমন সমস্যা নিয়ে আরও
উদাহরণ দেখবো এবং অনুশীলন করবো। মনে রাখবেন যে, অনুশীলনে একটি মানুষকে পারফেক্ট করে তোলে।
TypeScript এ any টাইপ লেখার নিয়ম
TypeScript এ Any Type এর মাধ্যমে যে কোনো
ধরনের ডাটা ষ্টোর করা যায়, যার মাধ্যমে TypeScript কম্পাইলার Type-checking এর কার্যক্রম কে এড়িয়ে গিয়ে কোড রান করে। মাঝে মাঝে আমাদের প্রয়োজন অনুযায়ি, Third Party
Resource বা API থেকে ডাটা ব্যবহার করতে হয়। কিন্তু Third Party Resource বা API প্রদানকৃত ডাটার টাইপ
কি হবে তা আমাদের অজানা থাকে। এই জন্য প্রাথমিকভাবে কোডের এরর থেকে বাঁচার জন্য ভ্যারিয়েবলের
ডাটা টাইপ Any ব্যবহার করে, এ যাবতীয় এরর থেকে বাঁচা যায়।
[
const thirdPartyData: any;
]
TypeScript এ never টাইপ লেখার নিয়ম
TypeScript এ never টাইপ সাধারণত ব্যবহার
করা হয় এমন ভ্যালু যা কখনো ঘটবে না বা সংঘটিত হবে না। যখন আপনি একবারেই নিশ্চিত যে
কোন কিছু ঘটবে না তখনই TypeScript এর never টাইপ ব্যবহার করা হয়।
[
function throwError(message: string): never {
throw new Error(message);
}
]
TypeScript এ void লেখার নিয়ম
TypeScript এ void কিওয়ার্ড ফাংশনের সাথে ব্যবহার করা হয়। যে সকল ফাংশন কোন রকম ভ্যালু return করে না, ঐ সকল ফাংশনের রিটার্ন টাইপ (:void) হয়। অর্থাৎ, এমন এক ফাংশন যা কোন না কোন কাজ করে কিন্তু ঐ ফাংশনের কোনো ডাটা বা ভ্যালু রিটার্ণ করার প্রয়োজন নাই, সেক্ষেত্রে ফাংশনের রিটার্ণ টাইপ এ void ব্যবহার করতে হয়।
[
function logMessage(message: string): void {
console.log(message);
}
]
TypeScript এ null ও undefined লেখার নিয়ম
Null:
null একটি primitive type ডাটা। null মানে এটার কোন অস্তিত্ব নাই কিন্তু আবার undefined ও না। TypeScript এ চাইলে আমরা অন্যান্য ডাটা টাইপের সাথে null ডাটা টাইপও রাখা যায়।
[
const myNullValue: null = null;
const someValue: string | null = null;
]
Undefined:
undefined একটি primitive type ডাটা। যখন কোন ভ্যারিয়েবল Declare করা হয় কিন্তু ঐ ভ্যারিয়েবলের মধ্যে কোন Value এ্যাসাইন করা হয় না। তখন তা বাই-ডিফল্ট undefined হয়ে থাকে।
[
let myUndefinedValue: undefined = undefined;
let anotherValue: number | undefined;
]
TypeScript এ Class লেখার নিয়ম
TypeScript এ Class কিওয়ার্ড এর মাধ্যমে
Class লিখা যায়, নিম্নে TypeScript এ class লিখার নিয়ম উল্লেখ করা হলো –
[
class Person {
firstName: string;
lastName: string;
age: number;
constructor(firstName: string, lastName: string, age: number) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
getFullName(): string {
return `${this.firstName} ${this.lastName}`;
}
}
]
TypeScript এ Type Alias লেখার নিয়ম
সাধারণত টাইপ লেখার ক্ষেত্রে object types, union types এবং type annotations ব্যবহার করতে পারি। কিন্তু এই কাজগুলো TypeScript এর
Type Aliases এর মাধ্যমেও করতে পারি। Type Aliases ব্যবহার করার জন্য প্রথমে type কিওয়ার্ড লিখতে হয়। তারপর
কোডের কার্যক্রমের উপর ভিত্তি করে একটি Variable নাম দিতে হয়
(Variable নাম অবশ্যই প্রথম অক্ষর বড় হাতের লেখা ভালো)। তৃতীয় Assignment Operator (=) দিয়ে কারলি
ব্রেসেছ {} দিয়ে তার মধ্যে Variable Key এবং তার ডাটা টাইপ উল্লেখ করতে হবে। চতুর্থ, নতুন টাইপ
ডিফাইনকৃত Type Aliases ব্যবহার করার জন্য Type
Annotations দিয়ে ব্যবহার করতে হবে। যেমন –
[
type UserType = { name: string; age: number };
const user: UserType = {
name: "Notesaid24.com",
age: 30,
};
]
TypeScript এ Type Interface লেখার নিয়ম
TypeScript এর ডাটা টাইপ ডিফাইন type annotation বা type aliases এর মধ্যে করা যায়, তা নিয়ে ইতিপূর্বে আলোচনা করেছি। এখন আমরা আরও একটি পদ্ধতি দেখবো তা হলো Type Interface যা হুবহু Type aliases এর মতো, কিন্তু সামান্য পার্থক্য তা হলো – Type aliases সমান (=) সাইন দিতে হয় কিন্তু Type Interface এ দিতে হয় না। বাকি সব একই নিয়মে লিখতে হয়।
Type Interface ব্যবহার করার জন্য প্রথমে interface
কিওয়ার্ড লিখতে হয়। তারপর কোডের কার্যক্রমের উপর ভিত্তি করে একটি Variable
নাম দিতে হয় (Variable নাম অবশ্যই প্রথম অক্ষর
বড় হাতের লেখা ভালো)। তৃতীয় কারলি ব্রেসেছ {} দিয়ে তার মধ্যে Variable Key এবং তার ডাটা
টাইপ উল্লেখ করতে হবে। চতুর্থ, নতুন টাইপ ডিফাইনকৃত Type
Interface ব্যবহার করার জন্য Type Annotations (:) দিয়ে ব্যবহার করতে হবে। যেমন –
[
interface UserType {
name: string;
age: number;
}
const user: UserType = {
name: "Notesaid24.com",
age: 30,
};
]
TypeScript Type Aliases এবং TypeScript Interfaces Type এর মধ্যে পার্থক্য –
Type Aliases |
Interface Type |
Type Aliases ব্যবহার করার জন্য ‘type’ কিওয়ার্ড ব্যবহার করতে হয়। |
Interface Type ব্যবহার করার জন্য ‘interface’ কিওয়ার্ড ব্যবহার করতে হয়। |
Type Aliases এ অন্য Type Aliases টাইপস্ক্রিপ্ট এর intersection
type (&) এর মাধ্যমে
ব্যবহার করে নতুন একটি টাইপ তৈরি করা যায়। এমনকি Type
Aliases এ interface
type এক্সটেন্ড করে
ব্যবহার করা যায়। type UserInfo = UserOne & UserTwo Or, type UserInfo = UserOne & { isAdmin : boolean } |
Interface
Type এ অন্য Interface
Type “extends’ কিওয়ার্ড এর
মাধ্যমে ব্যবহার করা যায়। এমনকি Interface
Type এ Type
Aliases এক্সটেন্ড
ব্যবহার করা যায়। interface
UserOne extends UserTwo {isAdmin: boolean} |
Type Aliases এ পূর্বে ডিক্লেয়ারকৃত টাইপ কে দ্বিতীয়বার ডিক্লেয়ার করতে গেলে এরর দিবে।
অর্থ্যাৎ, একই নামে দুইবার টাইপ ডিক্লেয়ার করা যাবে না। যেমন – type User = {
title: string; } type User = {
age: number } // Error: Duplicate identifier 'User'. |
Interface Type একই নাম দিয়ে দুইবার টাইপ ডিফাইন করা যাবে, তাতে কোনো এরর দিবে না। যেমন – interface User {
title: string; } interface User {
age: number } |
TypeScript এ Generic লেখার নিয়ম
TypeScript এ Generics ব্যবহার করার
মাধ্যমে কোড Reusable করা যায়। Generics সাধারণত Functions এবং class এ ব্যবহার করা হয় কেননা Functions এবং class বিভিন্ন ধরনের ডাটা টাইপ নিয়ে কাজ করতে হয়।
[
// Simple generic function
function identity<T>(arg: T): T {
return arg;
}
// Using the generic function
let result = identity<string>("Welcome!, Notesaid24 Website");
console.log(result); // Output: Hello, TypeScript!
// TypeScript can infer the type if you don't explicitly provide it
let inferredResult = identity(42);
console.log(inferredResult); // Output: 42
// Generic class example
class Box<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
]
[
// Using the generic class
let strBox = new Box<string>("TypeScript");
console.log(strBox.getValue()); // Output: TypeScript
let numBox = new Box<number>(42);
console.log(numBox.getValue()); // Output: 42
// Generic function to merge two arrays of the same type
function mergeArrays<T>(arr1: T[], arr2: T[]): T[] {
return [...arr1, ...arr2];
}
// Example usage with different types of arrays
const stringArray1 = ["apple", "banana", "orange"];
const stringArray2 = ["grape", "kiwi", "melon"];
const mergedStringArray = mergeArrays(stringArray1, stringArray2);
console.log("Merged String Array:", mergedStringArray);
// Output: Merged String Array: [ 'apple', 'banana', 'orange', 'grape', 'kiwi', 'melon' ]
const numberArray1 = [1, 2, 3];
const numberArray2 = [4, 5, 6];
const mergedNumberArray = mergeArrays(numberArray1, numberArray2);
console.log("Merged Number Array:", mergedNumberArray);
// Output: Merged Number Array: [ 1, 2, 3, 4, 5, 6 ]
]
TypeScript Flag
এখন TypeScript এর কিছু গুরুত্বপূর্ণ Flags নিয়ে বিস্তারিত আলোচনা করবো,
কেননা Flags এর মাধ্যমে TypeScript কোড Compile করার সময় Flags এর
মাধ্যমে আউটপুট ফরম্যাট enable / disable, কোড অপটিমাইজ করা যায়,
নিন্মে TypeScript গুরুত্বপূর্ণ flags বর্ণনা করা হলো –
--target: এই ফ্লাগটির মাধ্যমে
JavaScript এর টার্গেটেড ভার্সন অনুযায়ী কোড কম্পাইল করা যায়,
JavaScript এর সচরাচর নির্দিষ্ট কিছু ভার্সন – es3, es5,
es6, es2015, es2016, es2017, es2018, es2019, es2020 এবং
es2021
[
tsc --target es5 app.ts
]
--module: এই ফ্লাগটির মাধ্যমে
JavaScript এর Moudle Format জেনারেট করা যায়,
উল্লেখযোগ্য কিছু মডিউল হলো – commonJs, amd, system, umd,
es2015 এবং es2020।
[
tsc --module commonjs app.ts
]
--strict: এই ফ্লাগটির মাধ্যমে
TypeScript এর টাইপ চেকিং করা যায়, উল্লেখযোগ্য
কিছু টাইপ-চেকিং ফ্লাগস হলো - --noImplicitAny,
--strictNullChecks, --strictFuntionTypes, --strictPropertyInitialization এবং --noImplicitThis।
[
tsc --strict app.ts
]
[
tsc --noImplicitAny app.ts
]
--watch: এই ফ্লাগটির মাধ্যমে
TypeScript কম্পাইলারকে সোর্স ফাইলের পরিবর্তনের মনিটরিং করা যায় এবং
রাখা যায়।
[
tsc --watch app.ts
]
আশা করি আপনি আজকের এই ব্লগটি মনোযোগ
সহকারে পড়েছেন। আজকের ব্লগটি আপনার কাছে কেমন লেগেছে অবশ্যই
কমেন্ট করে জানাবেন, আর যদি কোন ভূল হয়ে থাকে তাহলে ক্ষমা সুন্দর দৃষ্টিতে দেখবেন এবং কোথায় ভূল হয়েছে কমেন্ট করে জানাবেন। পোষ্টে উল্লিখিত কোনো অংশ যদি বুঝতে সমস্যা হয়, তাহলে কমেন্ট বক্সে জানিয়ে দিন। ইনশাআল্লাহ্, সমস্যা সমাধানের চেষ্টা করবো। আর ওয়েবসাইটটি বন্ধুদের মাঝে শেয়ার করবেন। আজকের মতই এখানেই বিদায় নিলাম, ইনশাআল্লাহ দেখা হবে অন্য কোন ব্লগে। ভালো থাকবেন সুস্থ থাকবেন। আল্লাহ হাফেয।