Skip to content

Hello developers, In this repository I am writed my all notes of typescript in bengali language. This repository can be help you to understand any typescript subject.

Notifications You must be signed in to change notification settings

Asfak00/typescript-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of content ( click to navigate )


What is TypeScript?

types / additional features + javascript āĻŽāĻŋāϞ⧇āχ āĻ•āĻŋāĻ¨ā§āϤ⧁ TypeScript āĻ—āĻ āĻŋāϤāĨ¤ TypeScript āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āϟāĻžāχāĻĒ āĻĢā§āϰāĻŋ āϕ⧋āĻĄ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ ( āĻŽāĻžāύ⧇ āϕ⧋āύ variable āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϕ⧇āĻŽāύ āĻšāĻŦ⧇ )āĨ¤ TypeScript ⧍ā§Ļ⧧⧍ āϏāĻžāϞ⧇ āĻĄā§‡āϭ⧇āϞāĻĒ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻŽā§‡āχāύāĻŸā§‡āχāύ āĻ•āϰāϛ⧇āĨ¤

TypeScript Install

First Step: Check node install or not: node --version


Second Step

// global
npm install -g typescript

// local
npm install --save-dev typescript

Check installed or not: tsc --version

How works TypeScript

image


āωāĻĒāϰ⧇āϰ Diagram āϞāĻ•ā§āώ āĻ•āϰāϞ⧇āχ āĻŦ⧁āĻāĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇ TypeScript program run āĻ•āϰāĻžāϰ āϏ⧇āϟāĻž Compile āĻšā§Ÿ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ āϏ⧇āϟāĻŋ Javascript āĻ āϰ⧁āĻĒāĻžāĻ¨ā§āϤāϰ āĻšā§Ÿā§‡ Output āĻĻ⧇āĻ–āĻžā§ŸāĨ¤ āφāϰ āĻāϟāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄ āχāĻĄāĻŋāϟāϰ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ⧇ āϝ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāϤ⧇ āĻšā§Ÿ āϏ⧇āϟāĻž āύāĻŋāĻšā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋...

tsc file-name

// āφāϰ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϚāĻžāύ āύāĻž āϝ⧇ āĻŦāĻžāϰ āĻŦāĻžāϰ āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰāĻŦ⧇āύ āϤāĻžāĻšāϞ⧇ āύāĻŋāĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤
tsc file-name --watch

TypeScript Configuration

  • create src, public folder
  • Inside public folder create index.html, style.css and inside src folder create index.ts or other ts files
  • in terminal -> tsc --init
  • edit tsconfig.json as shown in the following example
{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "rootDir": "./src",
    "outDir": "./public",
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true
  },
  "include": ["./src"],
  "files": ["./src/index.ts", "./src/app.ts"]
}

Data Types

Data Types āĻāϰ āĻŽāĻ§ā§āϝ⧇ any āĻšāĻšā§āϛ⧇ āϏ⧁āĻĒāĻžāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻ°ā§Ÿā§‡āϛ⧇ Built-in data types āĻ“ user define data typesāĨ¤

Built-in data types

  • Number
  • String
  • Boolean
  • Undefined
  • Null
  • Void

āϏāĻŦ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ⧇āϰ āĻāĻ•āϟāĻž āĻ•āϰ⧇ example āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

let name = "Rahi Ahmed"; // String
let Number = 123; // Number
let isMale = true; // Boolean
let hasMoney = null; // Null
let houseAddress = undefined; // Undefined

āωāĻĒāϰ⧇ āϝ⧇ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚ⧟ āĻ•āϰāĻžāύ⧋ āĻšāϞ⧋ āĻāϗ⧁āϞ⧋ āĻšāĻšā§āϛ⧇ any āĻāϰ built-in āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒāĨ¤ āĻāϗ⧁āϞ⧋ āφāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ­ā§āϝāĻ¸ā§āϤāĨ¤

User define data types

  • Arrays
  • Enums
  • Classes
  • Interfaces

Union Data Type

āϕ⧋āύ⧋ āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āχ variable āĻ…āĻĨāĻŦāĻž function āĻāϰ āĻŽāĻ§ā§āϝ⧇ ā§§ āĻāϰ āĻ…āϧāĻŋāĻ• āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻ–āύ āφāĻŽāϰāĻž āχāωāύāĻŋ⧟āύ (Union) āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹ āϏ⧇āϟāĻž āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ Union āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒāϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āύāĻŋāĻšā§‡ āϤāĻžāϰ example āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

let person: string | number;

person = "John";
person = 123;

āωāĻĒāϰ⧇ person āύāĻžāĻŽā§‡āϰ variable āϟāĻŋ ⧍āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ string āĻāĻŦāĻ‚ number āĻāĻŦāĻ‚ ⧍āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āύ⧇āĻ“ā§ŸāĻžāϰ āϏāĻŽā§Ÿ āϕ⧋āύ⧋ error āĻĻāĻŋāĻŦ⧇ āύāĻž āĻ•āĻžāϰāĻŖ āφāĻŽāϰāĻž Union data type āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏ⧇āϟāĻž āĻŦāϞ⧇ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ ⧍āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϞāĻžāĻ—āĻŦ⧇āĨ¤

āĻāĻ•āχāĻ­āĻžāĻŦ⧇ function āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻ“ āφāĻŽāϰāĻž Union āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āύāĻŋāĻšā§‡ example āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

function clientId(id: string | number) {
  console.log(id);
}

clientId("123");
clientId(123);

āωāĻĒāϰ⧇ clientId āύāĻžāĻŽā§‡āϰ function āϟāĻŋ id āύāĻžāĻŽā§‡ āϝ⧇ āĻĒ⧇āϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāĻŋāĻŦ⧇ āϏ⧇āĻ–āĻžāύ⧇ āχāύāĻĒ⧁āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ ⧍āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ string āĻāĻŦāĻ‚ number āĻāĻŦāĻ‚ ⧍āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āύ⧇āĻ“ā§ŸāĻžāϰ āϏāĻŽā§Ÿ āϕ⧋āύ⧋ error āĻĻāĻŋāĻŦ⧇ āύāĻž āĻ•āĻžāϰāĻŖ āφāĻŽāϰāĻž Union data type āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏ⧇āϟāĻž āĻŦāϞ⧇ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ ⧍āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϞāĻžāĻ—āĻŦ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāϪ⧇ ⧍āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻ•āĻŽā§āĻŦāĻžāχāύ āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ Union āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϝāϤāϗ⧁āϞ⧋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āχāĻšā§āĻ›āĻž āφāĻŽāϰāĻž āĻ•āĻŽā§āĻŦāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤

Array Type

Array type āϤ⧋ āφāĻŽāϰāĻž āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āφāĻŽāϰāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ typescript āĻ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϟāĻžāχāĻĒ⧇āϰ āϏāĻžāĻĨ⧇ array āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ āϏ⧇āϟāĻž āĻāĻ–āĻžāύ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻšā§āϛ⧇āĨ¤

let info = ["Rahi", "Alamin", "Naim"]; // āϝāĻ–āύ āφāĻŽāϰāĻž āϭ⧇āϞ⧁ āϏāĻš array āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻ›āĻŋ āϤāĻ–āύ typescript āχāĻ¨ā§āĻŸā§‡āϞāĻŋāĻœā§‡āĻ¨ā§āϏ āĻŦ⧁āĻā§‡ āϝāĻžāĻšā§āϛ⧇ āĻāϟāĻžāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇ āĻāχ array āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻšāĻšā§āϛ⧇ stringāĨ¤

let info: string[]; // āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻ–āύ āφāĻŽāϰāĻž āϭ⧇āϞ⧁ āύāĻž āĻĻāĻŋā§Ÿā§‡ āĻļ⧁āϧ⧁ array āϟāĻŋ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧇ āϰāĻžāĻ–āĻŋ āϤāĻ–āύ āφāĻŽāϰāĻž typescript āĻ āĻāĻ­āĻžāĻŦ⧇ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻ⧇āχāĨ¤

āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ Union āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻ•āĻŽā§āĻŦāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ array āĻāϰ āϜāĻ¨ā§āϝ āĻ“āĨ¤ āύāĻŋāĻšā§‡ example āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āĨ¤

let info: (string | number)[];

info = ["Rahi", 23];

Tuple Data Type

āĻ…āύ⧇āĻ• āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ (key, value) āύāĻŋā§Ÿā§‡ array āϤ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒāϞ āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āύāĻŋā§Ÿā§‡ āϤāĻ–āύ āφāĻŽāϰāĻž āĻāχ āϟāĻžāĻĒāϞ āĻĄāĻžāϟāĻž āϟāĻžāχāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏ⧇āϟāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āύāĻŋāĻšā§‡ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

let data: [number, string];
data = [101, "Rahi"];
data.push(303, "Alamin");

console.log(data);

Tuple data type āĻ āφāĻŽāϰāĻž variable define āĻ•āϰ⧇ āύāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āϏ⧇āχ variable āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻāĻŋāĻŦā§‹ ( [] ) āĻĨāĻžāĻ°ā§āĻĄ āĻŦā§āĻ°ā§āϝāĻžāϕ⧇āϟ āĻāϰ āĻŽāĻ§ā§āϝ⧇ ( , ) āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ ( āϝāĻĻāĻŋ ā§§ āĻāϰ āĻ…āϧāĻŋāĻ• āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿ āϤāĻžāĻšāϞ⧇ )āĨ¤ āĻāϰāĻĒāϰ āύāϰāĻŽāĻžāϞ array āϤ⧇ āϝ⧇āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āĻšā§Ÿ āĻ“āχāĻ­āĻžāĻŦ⧇āχ āϝ⧇āϕ⧋āύ⧋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāĻŦ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝ⧇āĻšā§‡āϤ⧁ āĻāϟāĻž typescript āϤāĻžāχ āφāĻŽāϰāĻž variable define āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āϝ⧇ order āĻ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋ āϏ⧇āχ order āĻ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄā§‡āϟāĻž āĻĒ⧁āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ array āϤ⧇āĨ¤


Enum Data Type

āĻ…āύ⧇āĻ• āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ variable āĻĨāĻžāϕ⧇ āϝ⧇āϗ⧁āϞ⧋āϰ value āϏāĻŦ āĻāĻ•āχ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϏ⧇āϗ⧁āϞ⧋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāĻ•āĻŋ āĻāχ āĻ•āĻžāϜāϟāĻŋ āϰāĻŋāĻĄā§‡āĻŦāϞ āĻ•āϰāϤ⧇ typescript āφāĻŽāĻžāĻĻ⧇āϰ āĻĻāĻŋāĻšā§āϛ⧇ Enum Data Type āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϝ⧇āϟāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ constant variable āϗ⧁āϞ⧋ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āĻāĻŦāĻ‚ array āϤ⧇ āφāĻŽāϰāĻž āϝ⧇āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ item āϧāϰāϤ⧇ āĻĒāĻžāϰāϤāĻžāĻŽ āĻ āĻŋāĻ• āϏ⧇āχāĻŽāĻ­āĻžāĻŦ⧇ Enum Data Type āĻ āĻ“ āϧāϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āφāĻŽāϰāĻž Enum Data Type switch statements, comparisons āĻāĻŦāĻ‚ āφāϰ āĻ…āύ⧇āĻ• āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ Enum Data Type āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄāϕ⧇ āφāϰ āĻŦ⧇āĻļāĻŋ readable āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ Enum Data Type āĻ āφāĻŽāϰāĻž duplicate āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āύāĻžāĨ¤ Enum Data Type āĻ āφāĻŽāϰāĻž āϕ⧋āύ⧋ variable declear āĻ•āϰāϞ⧇ āϏ⧇āϟāĻžāϰ value āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ• āϏ⧇āϟ āĻšā§Ÿā§‡ āϝāĻžā§Ÿ ( ā§Ļ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻšā§Ÿā§‡ āϝāϤāϗ⧁āϞ⧋ item āĻĨāĻžāĻ•āĻŦ⧇ āϤāϤ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ ā§§ -> ā§§ āĻ•āϰ⧇ āĻŦāĻžā§œāϤ⧇ āĻĨāĻžāĻ•āĻŦ⧇ ) āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ āύāĻŋāĻœā§‡āĻĻ⧇āϰ value āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ ( āĻ“āχāϟāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āϏ⧇āϟ āĻšā§Ÿ )āĨ¤

Enum Data Type ā§Š āϧāϰāύ⧇āϰ

  • Numeric Enums - ( āĻāϟāĻŋāϤ⧇ āφāĻŽāϰāĻž āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āĻŽā§ŒāϞāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻž āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŦā§‹ )

  • String Enums - ( āĻāϟāĻŋāϤ⧇ āφāĻŽāϰāĻž string āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŦā§‹ )

  • Heterogeneous Enums - ( āĻāϟāĻŋāϤ⧇ āφāĻŽāϰāĻž Numeric Enums āĻāĻŦāĻ‚ String Enums āϏāĻŽāĻ¨ā§āĻŦ⧟ āĻ•āϰ⧇ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŦā§‹ )


Enum Data Type Syntax


image

āωāĻĒāϰ⧇āϰ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āϰāĻž āϕ⧋āύ⧋ variable āĻāϰ value āϏ⧇āϟ āĻ•āϰāĻŦā§‹ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿ āύāĻŋ! āύāĻŋāĻšā§‡ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻŦ⧇


Set The Value In Enum Variable


image

āĻāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āϝ⧇āϕ⧋āύ⧋ variable āĻ value āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āφāϰ āϝāĻĻāĻŋ āϕ⧋āύ⧋ value āϏ⧇āϟ āύāĻž āĻ•āϰāĻŋ āϤāĻžāĻšāϞ⧇ Enum āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āύāĻžāĻŽā§āĻŦāĻžāϰ value āϏ⧇āϟ āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤


Any Data Type

Any Data Type āϤāĻ–āύāχ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ āϝāĻ–āύ āφāĻŽāĻŋ āϜāĻžāύāĻŋ āύāĻž āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āĻĢāĻžāĻ‚āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āϕ⧋āύ āϧāϰāϪ⧇āϰ āĻĄā§‡āϟāĻž āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ ( āĻŽāĻžāύ⧇ āĻšā§ŸāϤ⧋ āφāĻŽāĻžāϰ string āĻāϰ āĻ“ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āφāϛ⧇ āϏāĻžāĻĨ⧇ number, object, array or boolean etc āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻ°ā§Ÿā§‡āϛ⧇ ) āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž Data Type āĻšāĻŋāϏ⧇āĻŦ⧇ Any āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϤāĻžāĻšāϞ⧇ āϝ⧇āϕ⧋āύ⧋ āϧāϰāϪ⧇āϰ āĻĄā§‡āϟāĻž āφāϏāϞ⧇āĻ“ āϕ⧋āύ⧋ error āĻĻāĻŋāĻŦ⧇ āύāĻžāĨ¤

let form: any;
form = 10;
form = "string";
form = true;
form = {};
form = [];
form = function () {};
form = null;
form = undefined;

Object Data Type

āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋ āϝ⧇ typescript āĻ āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ object āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ⧇āϰ āϏāĻ™ā§āϗ⧇āĨ¤

let names: Object;
names = { name: "John", age: 30 };

āωāĻĒāϰ⧇ āϝ⧇āχ āϕ⧋āĻĄāϟāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āĻ–āĻžāύ⧇ names āύāĻžāĻŽā§‡āϰ variable āϝ⧇ āĻāĻ•āϟāĻž object āĻāϟāĻž āĻŦāϞ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāĻšā§āϛ⧇ āϟāĻžāχāĻĒ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝāĻ–āύ āĻ“āχ names āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āύ⧋ value āϰāĻžāĻ–āϤ⧇ āϝāĻžāĻŦā§‹ āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ object āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āύāĻž āĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ error āĻĻāĻŋāĻŦ⧇āĨ¤

āĻāĻ–āύ āĻĻ⧇āϖ⧇ āύ⧇āχ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž array of object āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϞāĻŋāĻ–āϤ⧇ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻŦā§‹āĨ¤ āύāĻŋāĻšā§‡ āϤāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

let users: Object[];
users = [
  { name: "John", age: 30 },
  { name: "Jane", age: 30 },
  { name: "Mark", age: 30 },
];

āωāĻĒāϰ⧇ āϝ⧇ āϕ⧋āĻĄ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āϟāĻž āĻšāĻšā§āϛ⧇ array of object āĻŽāĻžāύ⧇ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āφāĻŽāϰāĻž āĻ…āύ⧇āĻ• āϗ⧁āϞ⧋ object āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĻāĻŦāĻ‚ āϏ⧇āϟāĻž āĻāĻ•āϟāĻŋ array āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻšāĻŦ⧇āĨ¤ āφāϰ āϤāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāĻ­āĻžāĻŦ⧇ āϞāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇ Object[]āĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ object āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ āĻœā§‡āύ⧇ āύāĻŋāϞāĻžāĻŽ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ array of object āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ āĻœā§‡āύ⧇ āύāĻŋāϞāĻžāĻŽ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ object āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧇ entires āϗ⧁āϞ⧋ āĻĨāĻžāĻ•āĻŦ⧇ āϏ⧇āϗ⧁āϞ⧋āϰ āφāϞāĻžāĻĻāĻž āφāϞāĻžāĻĻāĻž āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĻāĻŋāϤ⧇ āĻšā§Ÿ āϏ⧇āϟāĻž āϜāĻžāύāĻŋ āύāĻž āϏ⧇āϟāĻž āύāĻŋāĻšā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

let newUser: { name: string, age: number };

newUser = { name: "Rahi", age: 19 };

āωāĻĒāϰ⧇ āφāĻŽāϰāĻž newUser āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ object declear āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧇ entries āϗ⧁āϞ⧋ āĻĨāĻžāĻ•āĻŦ⧇ āϏ⧇āϗ⧁āϞ⧋āϰ āφāϞāĻžāĻĻāĻž āφāϞāĻžāĻĻāĻž āĻ•āϰ⧇ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧇ āĻĻāĻŋāϞāĻžāĻŽ āĻāĻŦāĻ‚ āύāĻŋāĻšā§‡ āϏ⧇āχ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāϰ āĻŽāĻ§ā§āϝ⧇ ⧍āϟāĻŋ value āĻāϏāĻžāχāύ āĻ•āϰāϞāĻžāĻŽāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āϝāĻĻāĻŋ āϚāĻžāχ āϝ⧇ āωāĻĒāϰ⧇ āϝ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ°ā§Ÿā§‡āϛ⧇ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇āϰ age āϕ⧇ āĻĻāĻŋāϞ⧇ āĻ“ āĻšāĻŦ⧇ āύāĻž āĻĻāĻŋāϞ⧇ āĻ“ āĻšāĻŦ⧇ āĻŽāĻžāύ⧇ āĻ…āĻĒāĻļāύāĻžāϞ āϰāĻžāĻ–āϤ⧇ āϚāĻžāχāϞ⧇ ? āĻāϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϤāĻžāϰ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻāχāϰāĻ•āĻŽ āĻšāĻŦ⧇ age?: numberāĨ¤ āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϟāĻŋ āĻ…āĻĒāĻļāύāĻžāϞ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇ āĻāĻŦāĻ‚ āĻāχ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϝāĻĻāĻŋ āύāĻž āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿ āϤāĻžāĻšāϞ⧇ āϕ⧋āύ⧋ error āĻĻāĻŋāĻŦ⧇ āύāĻžāĨ¤


Custom Data Type

āϝāĻ–āύ āĻŦ⧜ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿ āϤāĻ–āύ āĻāĻ•āχ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āύāĻŋā§Ÿā§‡ āĻ…āύ⧇āĻ• āĻŦāĻžāϰ āϞāĻŋāĻ–āϤ⧇ āĻšā§Ÿ āϝāĻžāϰ āϜāĻ¨ā§āϝ āϟāĻžāχāĻĒāĻ¸ā§āĻ•āĻŋāĻĒā§āϟ āφāĻŽāĻžāĻĻ⧇āϰ āĻĻāĻŋāĻšā§āϛ⧇ āύāĻŋāĻœā§‡āϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāĻžāύāĻžāύ⧋āϰ āϏ⧁āϝ⧋āĻ—āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧜ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāĻšā§āϛ⧇ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄāϕ⧇ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āϰāĻŋāĻĄā§‡āĻŦāϞ āĻŦāĻžāύāĻŋā§Ÿā§‡ āĻĻā§‡ā§Ÿ āĻāĻŦāĻ‚ āĻŦāĻžāĻ— āĻĢā§āϰāĻŋ āĻŦāĻžāύāĻžā§Ÿ āϕ⧋āĻĄāϕ⧇āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āφāĻŽāϰāĻž āϏāĻŦāĻ•āĻŋāϛ⧁āϰ āϜāĻ¨ā§āϝ āĻŦāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āϝ⧇āĻŽāύ - ( function, variable, object, class etc )āĨ¤ āύāĻŋāĻšā§‡ āϕ⧋āĻĄāϗ⧁āϞ⧋āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

type myCustomDataType = {
  name: string,
  age: number,
  isMarried: boolean,
  kids: string[],
  job: {
    title: string,
    salary: number,
  },
};

āωāĻĒāϰ⧇ āĻāĻ•āϟāĻŋ custom data type āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§āϝāχ āφāĻŽāϰāĻž āϝāĻ–āύ custom data type āĻŦāĻžāύāĻžāĻŦā§‹ āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ type keyword āϞāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤ āωāĻĒāϰ⧇ āϝ⧇ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āϟāĻž āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāĨ¤

// āĻāĻ–āĻžāύ⧇ allUsers āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ variable āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇ myCustomDataType āϕ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ array of object āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇āĨ¤
let allUsers: myCustomDataType[];

// allUsers āϕ⧇ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āĻļ⧁āϧ⧁ āĻāĻ–āĻžāύ⧇āĨ¤
allUsers = [];

// āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ user āĻŦāĻžāύāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ newUser variable āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ myCustomDataType āϕ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇ āĻ•āĻžāϰāĻŖ myCustomDataType āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧇ āϝ⧇ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻ°ā§Ÿā§‡āϛ⧇ āφāĻŽāĻžāϰ āϏāĻŦ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻĻāϰāĻ•āĻžāϰ āĻāϰ āϜāĻ¨ā§āϝāχāĨ¤
let newUser: myCustomDataType;

// āĻāĻ–āĻžāύ⧇ newUser āĻāϰ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϗ⧁āϞ⧋āϰ value āĻĻ⧇āĻ“ā§ŸāĻž āĻšāĻšā§āϛ⧇ āĻāĻŦāĻ‚ āϝ⧇āĻšā§‡āϤ⧁ āφāĻŽāϰāĻž newUser āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ myCustomDataType āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋ āϤāĻžāχ myCustomDataType āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧇ āϝ⧇ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻ°ā§Ÿā§‡āϛ⧇ āϏāĻŦ āĻāχ newUser āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϚāϞ⧇ āĻāϏ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻāĻ–āύ āϝāĻ–āύ āφāĻŽāĻŋ newUser āĻāϰ value āĻĻāĻŋāϤ⧇ āϝāĻžāĻšā§āĻ›āĻŋ āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻ“āχ āϏāĻŦ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻāϰ value āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āϝ⧇āϗ⧁āϞ⧋ āĻ°ā§Ÿā§‡āϛ⧇ myCustomDataType āĻāϰ āĻŽāĻ§ā§āϝ⧇āĨ¤
newUser = {
  name: "John",
  age: 25,
  isMarried: false,
  kids: ["Jane", "Jack"],
  job: {
    title: "Software Engineer",
    salary: 100000,
  },
};

// āϏāĻŦāĻžāϰ āĻļ⧇āώ⧇ āφāĻŽāϰāĻž āĻāχ newUser āϕ⧇ āĻĒ⧁āĻļ āĻ•āϰ⧇ āĻĻāĻŋāĻšā§āĻ›āĻŋ allUsers āĻāϰ āĻŽāĻ§ā§āϝ⧇āĨ¤ āĻāĻŦāĻ‚ āĻāĻ–āύ āϝāĻĻāĻŋ āφāĻŽāϰāĻž allUsers āϕ⧇ console.log āĻ•āϰāĻŋ āϤāĻžāĻšāϞ⧇ āĻāĻ•āϟāĻŋ object āĻĒāĻžāĻŦā§‹āĨ¤
allUsers.push(newUser);

āωāĻĒāϰ⧇ āϤ⧋ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ custom data type āĻŦāĻžāύāĻŋā§Ÿā§‡ āĻĻ⧇āϖ⧇āĻ›āĻŋ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž custom data type āϏāĻŦ āĻ•āĻŋāϛ⧁āϰ āϜāĻ¨ā§āϝ āĻŦāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ (variable, function, class etc )āĨ¤


Class Typescript

Typescript āĻ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•āĻŋāĻĒā§āĻŸā§‡āϰ āϏāĻŦāĻ•āĻŋāϛ⧁āϰ Syntax āϏ⧇āχāĻŽ āĻļ⧁āϧ⧁ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšā§Ÿ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻ⧇āĻ“ā§ŸāĻžāϰ āϧāϰāύāϟāĻžāĨ¤ āϤ⧇āĻŽāύāĻŋ āĻ­āĻžāĻŦ⧇ āĻāĻ–āύ āĻĻ⧇āĻ–āĻŦā§‹ Typescript āĻ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ Class āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ Class āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨāĻžāĻ•āĻž Property āϗ⧁āϞ⧋āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

class User {
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }
}

let user = new User("John", 20);
user.Show();

let user2 = new User("Jane", 30);
user2.Show();

āωāĻĒāϰ⧇ āĻāĻ•āϟāĻŋ Class āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ name, age ⧍āϟāĻŋ Property āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āφāωāϟāĻĒ⧁āϟ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ Show āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āĻāĻŦāĻ‚ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ Console āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤


Inheritance

Inheritance āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŦāĻž āĻ•ā§āϞāĻžāϏ āϝāĻž āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŦāĻž āĻ•ā§āϞāĻžāϏ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āϧāϰ⧁āύ, āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āĻŦāĻžāύāĻžāύ⧋ āĻ°ā§Ÿā§‡āϛ⧇ āĻāĻŦāĻ‚ āĻ“āχ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϝāϤāϗ⧁āϞ⧋ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻĻ⧇āĻ“ā§ŸāĻž āφāϛ⧇ āϏāĻŦāϗ⧁āϞ⧋ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻ…āĻ¨ā§āϝ āφāϰ⧇āĻ•āϟāĻŋ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤ āϤāĻžāĻšāϞ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āϝāĻ–āύ āĻ°ā§Ÿā§‡āϛ⧇ āϏ⧇āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϗ⧇āϞ⧇ āϕ⧋āĻĄ āϰāĻŋāĻĄā§‡āĻŦāϞ āĻšāĻŦ⧇ āϤāĻžāχ āύāĻž? āφāϰ āĻ“āχāϏāĻŽā§Ÿ Inheritance āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāϗ⧇āϰ āĻ•ā§āϞāĻžāϏ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āφāύāĻž āϝāĻžā§Ÿ āύāϤ⧁āύ āĻ•ā§āϞāĻžāϏ āĻāϰ āĻŽāĻ§ā§āϝ⧇āĨ¤ Inheritance āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϏ⧇āϰ āύāĻžāĻŽ āĻĻ⧇āĻ“ā§ŸāĻžāϰ āĻĒāϰ extends keyword āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϰ āĻĒāϰ⧇ āϝ⧇ āĻ•ā§āϞāĻžāϏāϕ⧇ Inheritance āĻ•āϰāϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ āϤāĻžāϰ āύāĻžāĻŽ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡ āϕ⧋āĻĄ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

class User {
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }
}

const user = new User("John", 20);
user.Show();

class Student extends User {
  studentId: number;
  studentGender: string;

  constructor(
    name: string,
    age: number,
    studentId: number,
    studentGender: string
  ) {
    super(name, age);
    this.studentId = studentId;
    this.studentGender = studentGender;
  }

  Show() {
    console.log(
      `username: ${this.name}, age: ${this.age} studentId: ${this.studentId}, studentGender: ${this.studentGender}`
    );
  }
}

const student = new Student("rahi", 19, 502386, "male");
student.Show();

āωāĻĒāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ User āύāĻžāĻŽā§‡ āĻāĻŦāĻ‚ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ ⧍āϟāĻŋ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻāĻŦāĻ‚ āφāωāϟāĻĒ⧁āϟ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ āφāϰ āύāĻŋāĻšā§‡ āφāϰ⧇āĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ Student āύāĻžāĻŽā§‡ āϝ⧇āĻ–āĻžāύ⧇āĻ“ āĻāĻ•āϟāĻŋ Student āĻāϰ āύāĻžāĻŽ, āĻŦ⧟āϏ āĻāϰ āϤāĻĨā§āϝ āϞāĻžāĻ—āĻŦ⧇ āϝāĻžāϰ āĻ•āĻžāϰāϪ⧇ āωāĻĒāϰ āĻĨ⧇āϕ⧇ User āĻ•ā§āϞāĻžāϏ āϕ⧇ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āύāĻŋā§Ÿā§‡ āφāϏāĻž āĻšā§Ÿā§‡āϛ⧇ Student āĻ•ā§āϞāĻžāϏ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻŦāĻ‚ Student āĻ•ā§āϞāĻžāϏ⧇ āφāϰ āύāϤ⧁āύ ⧍āϟāĻŋ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ User āĻ•ā§āϞāĻžāϏ⧇ āĻĨāĻžāĻ•āĻž āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇āĨ¤ Student āĻ•ā§āϞāĻžāϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧇ super() āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āϛ⧇āύ, āĻāϟāĻž āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ keyword āĻāĻŦāĻ‚ āĻāϟāĻŋ constructor āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āĻŸā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āϚāĻžāχāĻ˛ā§āĻĄ āϕ⧇ āφāύāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāĻ–āĻžāύ⧇ name, age āϕ⧇ āφāύāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤


Abstract Class

Abstract āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻĨ⧇āϕ⧇ āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āϰāĻžāĻ–āϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āϝ⧇āĻŽāύāσ āφāĻŽāϰāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋ āϝ⧇āϟāĻžāϰ āĻ­āĻŋāϤāϰ⧇ āĻ•āĻŋ āĻšāĻšā§āϛ⧇ āϏ⧇āϟāĻž āχāωāϜāĻžāϰāϕ⧇ āϜāĻžāύāϤ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ āύāĻž āĻāχāϰāĻ•āĻŽ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ Abstract āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ Abstract āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻŦāĻļā§āϝāχ āφāĻŽāĻžāĻĻ⧇āϰ bstract keyowrd āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡ āĻĻ⧇āϖ⧇ āύ⧇āχ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ Abstract āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšā§Ÿ,

abstract class Person {
  name: string;
  age: number;
  gender: string;
  constructor(name: string, age: number, gender: string) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }
}

āωāĻĒāϰ⧇ āϝ⧇āĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž Abstract āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž Abstract āĻ•ā§āϞāĻžāϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ object āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āύāĻž āϤāĻžāĻšāϞ⧇ error āĻĻāĻŋāĻŦ⧇āĨ¤ āφāϰ āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ Abstract āĻ•ā§āϞāĻžāϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ Abstract āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Abstract āĻŽā§‡āĻĨāĻĄ āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āύāĻžāĨ¤ āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

abstract class Person {
  name: string;
  age: number;
  gender: string;
  constructor(name: string, age: number, gender: string) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }

  // Abstract method
  abstract show(): void;
}

āĻāĻ­āĻžāĻŦ⧇ Abstract āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻž āϜāĻŋāύāĻŋāϏ āϝ⧇ āϝāĻĻāĻŋ āφāĻŽāϰāĻž Abstract āĻ•ā§āϞāĻžāϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ Abstract āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž āϝāĻ–āύ āĻāχ Abstract āĻ•ā§āϞāĻžāϏ Inheritance āĻ•āϰāĻŦā§‹ āϤāĻ–āύ āĻ…āĻŦāĻļā§āϝāχ āφāĻŽāĻžāĻĻ⧇āϰ Abstract āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āύāĻž āĻšāϞ⧇ error āĻĻāĻŋāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āϝ⧇ āĻāχ Abstract āĻ•ā§āϞāĻžāϏāϕ⧇ Inheritance āĻ•āϰāĻŦ⧇ āϏ⧇ āϤāĻžāϰ āĻŽāϤ⧋ āĻ•āϰ⧇ Abstract āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋āϕ⧇ āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āϝ⧇ āϤāĻžāϰāĻž āĻ•āĻŋ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āĻĢāĻžāĻ‚āĻļāύāĻžāϞāĻŋāϟāĻŋ āĻ•āĻŋāĨ¤


Encapsulation

Encapsulation āĻšāĻšā§āϛ⧇ Object-Oriented Programming āĻāϰ ā§ĒāϟāĻŋ āĻĢāĻžāĻ¨ā§āĻĄāĻžāĻŽā§‡āĻ¨ā§āϟāĻžāϞ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋāĨ¤ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•āϟāĻŋ āĻ…āĻŦā§āĻœā§‡āĻ•ā§āĻŸā§‡āϰ āφāϏāϞ āĻĢāĻžāĻ‚āĻļāύ āĻ…āĻĨāĻŦāĻž āĻŽā§‡āĻĨāĻĄāϗ⧁āϞ⧋ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āϰāĻžāĻ–āĻž āϝāĻžā§Ÿ ( āĻĒāĻžāĻŦāϞāĻŋāĻ•, āĻĒā§āϰāĻžāχāϭ⧇āϟ ) āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āĨ¤ Encapsulation āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄāĻžāϟāĻžāϰ āĻāĻ•ā§āϏ⧇āϏ āĻ•āύāĻŸā§āϰ⧋āϞ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄāĻžāϟāĻžāϕ⧇ āĻĒā§āϰāĻŸā§‡āĻ•ā§āĻŸā§‡āϟ āϰāĻžāĻ–āĻž āϏāĻŽā§āĻ­āĻŦāĨ¤ Encapsulation āĻāϰ ā§ŠāϟāĻŋ key principles āĻ°ā§Ÿā§‡āϛ⧇ āύāĻŋāĻšā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

  • Data Hiding
  • Access Control
  • Modularity

Data Hiding

Encapsulation āĻāϰ āĻŽā§āϞ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻšāĻšā§āϛ⧇ āĻĄāĻžāϟāĻžāϕ⧇ āϏ⧁āϰāĻ•ā§āώāĻŋāϤ āϰāĻžāĻ–āĻžāĨ¤ āϝāĻžāϰ āϜāĻ¨ā§āϝ Data Hiding āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āϝ⧇āϏāĻŦ implementation āĻ°ā§Ÿā§‡āϛ⧇ āĻĻ⧇āϗ⧁āϞ⧋āϕ⧇ āĻŦāĻžāĻšāĻŋāϰ⧇āϰ āĻĨ⧇āϕ⧇ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āϰāĻžāĻ–āĻž āϝāĻžā§ŸāĨ¤ āϝ⧇āϗ⧁āϞ⧋āϕ⧇ āĻŦāĻžāĻšāĻŋāϰ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āϚāĻžāχ āύāĻž āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāĻžāχāϭ⧇āϟ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ ⧍āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ ( āϏ⧇āϟ āĻāĻŦāĻ‚ āϗ⧇āϟ ) āύāĻžāĻŽā§‡āĨ¤ Data Hiding unauthorized āφāĻ•ā§āϏ⧇āϏ āϗ⧁āϞ⧋ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤

Access Control

Access Control āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻžāϟāĻžāϗ⧁āϞ⧋āϰ āφāĻ•ā§āϏ⧇āϏ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ ( āĻĒāĻžāĻŦāϞāĻŋāĻ•, āĻĒā§āϰāĻžāχāϭ⧇āϟ, āĻĒā§āϰāĻŸā§‡āĻ•ā§āĻŸā§‡āĻĄ, āϰāĻŋāĻĄāĻ…āύāϞāĻŋ )āĨ¤ Access Control āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϟāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻž āϝāĻžā§Ÿ āϝ⧇ āĻ•ā§āϞāĻžāϏ⧇ āĻĨāĻžāĻ•āĻž āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋāϕ⧇ āĻŦāĻžāĻšāĻŋāϰ⧇ āĻĨ⧇āϕ⧇ āφāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĻ…āĻĨāĻŦāĻž āύāĻžāĨ¤

Modularity

Modularity āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻĒā§āϝāĻžāϰāĻžāĻĄāĻžāχāĻŽ āϝāĻž āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϕ⧇ āϛ⧋āϟ āĻāĻ•āĻ• āĻ­āĻžāϗ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧇ āϤāĻžāĻĻ⧇āϰāϕ⧇ āφāϞāĻžāĻĻāĻž āφāϞāĻžāĻĻāĻž āĻŽāĻĄāĻŋāωāϞ⧇ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻŽāĻĄāĻŋāωāϞāĻžāϰ āχāωāύāĻŋāϟāϗ⧁āϞāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāχ āĻŽāĻĄāĻŋāωāϞāĻžāϰ āχāωāύāĻŋāϟāϗ⧁āϞāĻŋ āύāĻŋāϝ⧇ āύāĻŋāĻœā§‡āϰ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞ āύāĻž āĻĨāĻžāĻ•āϤ⧇ āĻšā§Ÿ āύāĻžāĨ¤

āύāĻŋāĻšā§‡ Encapsulation āĻāϰ Access Control āĻĨ⧇āϕ⧇ ( Public, Private, Protected, ReadOnly ) āĻĻā§āĻŦāĻžāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻž āĻŽā§‡āχāύāĻŸā§‡āχāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ āϤāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

// public access control
class User {
  public name: string;
  public age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }
}


// private access control
class User2 {
  private name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }

  GetAge() {
    return this.age;
  }

  SetAge(age: number) {
    this.age = age;
  }

  GetName() {
    return this.name;
  }

  SetName(name: string) {
    this.name = name;
  }
}


// protected access control
class User3 {
  protected name: string;
  protected age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }
}

class Employee extends User3 {
  private salary: number;

  constructor(name: string, age: number, salary: number) {
    super(name, age);
    this.salary = salary;
  }

  Show() {
    console.log(
      `username: ${this.name}, age: ${this.age}, salary: ${this.salary}`
    );
  }
}


// readonly access control
class User4 {
  readonly name: string;
  readonly age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  Show() {
    console.log(`username: ${this.name}, age: ${this.age}`);
  }
}
  • Public
    āφāĻŽāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āϕ⧋āĻĄ āĻ•āϰ⧇ āĻĨāĻžāĻ•āĻŋ āϏ⧇āϗ⧁āϞ⧋ āĻšāĻšā§āϛ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻ•āĨ¤ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ•āϰāĻž āϕ⧋āĻĄāϗ⧁āϞ⧋ āφāĻŽāϰāĻž read āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ update āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ access āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤

  • Private
    Private āĻ•āϰāĻž āϕ⧋āĻĄ āφāĻŽāϰāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻ­āĻŋāϤāϰ āĻĨ⧇āϕ⧇ access, read, update āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĻŦāĻžāĻšāĻŋāϰ⧇ āĻĨ⧇āϕ⧇ āĻĒāĻžāϰāĻŦā§‹ āύāĻžāĨ¤ āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇āϟāĻžāϕ⧇ edit or access āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤

  • Protected
    Protected āĻ•āϰāĻž āϕ⧋āĻĄ āφāĻŽāϰāĻž āĻŦāĻžāĻšāĻŋāϰ⧇ āĻĨ⧇āϕ⧇ access āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āύāĻž āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āϝāĻĻāĻŋ extends āĻ•āϰāĻŋ āĻ…āĻ°ā§āĻĨāĻžā§Ž Inheritance āĻ•āϰāĻŋ āĻ“āχ āĻ•ā§āϞāĻžāϏāϕ⧇ āϤāĻžāĻšāϞ⧇ āϏ⧇āχ Protected āϕ⧋āĻĄāϕ⧇ āφāĻŽāϰāĻž access, read, update āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤

  • ReadOnly
    ReadOnly āĻ•āϰāĻž āĻĨāĻžāĻ•āϞ⧇ āφāĻŽāϰāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ read āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĻĄāĻžāϟāĻž āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧋āύ⧋ update āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āύāĻžāĨ¤


Function Signature

Function Signature āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻ•āϤāϗ⧁āϞ⧋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāĻŋāĻŦ⧇, āĻ•āĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāĻŦ⧇, āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞ⧋ āϕ⧋āύ āϟāĻžāχāĻĒ⧇āϰ āĻšāĻŦ⧇ āĻāχāϗ⧁āϞ⧋āĨ¤ āĻāϤ⧇ āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄāϗ⧁āϞ⧋ āϰāĻŋāĻĄā§‡āĻŦāϞ āĻšā§Ÿ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝāĻ–āύ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϝāĻžāĻŦā§‹ āϤāĻ–āύ āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ• āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻžāĻœā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āĻšā§Ÿ āϝ⧇ āϤ⧋āĻŽāĻžāϰ āĻĢāĻžāĻ‚āĻļāύ āĻāχ āĻāχ āϜāĻŋāύāĻŋāϏāϗ⧁āϞ⧋ āϚāĻžā§Ÿ āϤ⧋āĻŽāĻžāϕ⧇ āĻāχāϗ⧁āϞ⧋āχ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āχāϰāϰ āĻ•āĻŽā§‡ āϝāĻžā§ŸāĨ¤ āύāĻŋāĻšā§‡ ⧍āϟāĻŋ āĻāĻ•ā§āϏāĻžāĻŽā§āĻĒāϞ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

// Example 1
let greet: (name: string) => void;

greet = (name: string) => {
  console.log(`My name is ${name}`);
};
greet("John");

// Example 2
let calc: (a: number, b: number, c: string) => number;

calc = (numOne: number, numTwo: number, action: string) => {
  if (action === "add") {
    return numOne + numTwo;
  } else {
    return numOne - numTwo;
  }
};
calc(5, 10, "add");

āϝāĻ–āύ āφāĻŽāϰāĻž Function Signature āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹ āϕ⧋āύ⧋ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āφāϗ⧇ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻšā§Ÿ āϏ⧇ āĻ•āĻŋ āĻ•āĻŋ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ ( āĻŽāĻžāύ⧇ āϤāĻžāϰ āĻŦāĻĄāĻŋ āĻ•āĻŋ āĻšāĻŦ⧇ ), āϏ⧇ āϕ⧋āύ āϕ⧋āύ āϟāĻžāχāĻĒ⧇āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻ•āĻŋ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāĻŦ⧇ āĻāϗ⧁āϞ⧋ āĻĻāĻŋā§Ÿā§‡āĨ¤ āϤāĻžāϰāĻĒāϰ āϝāĻ–āύ āφāĻŽāϰāĻž āϏ⧇āχ āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϝāĻžāĻŦā§‹ āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϏāĻžāĻœā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āĻšāĻŦ⧇ āϝ⧇ āĻāχ āĻĢāĻžāĻ‚āĻļāύ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āĻāχ āϜāĻŋāύāĻŋāϏ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āφāϰ āύāĻž āĻĻāĻŋāϞ⧇ āχāϰāϰ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰāĨ¤


Interface

Interface āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŸā§‡āĻŽā§āĻĒāϞ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āϝ⧇āϟāĻž āφāĻŽāϰāĻž āϚāĻžāχ āĻ…āύ⧇āĻ• āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇āĨ¤ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻžāϰāĻŦāĻžāϰ āĻāĻ•āχ āϟāĻžāχāĻĒ āϞāĻŋāĻ–āĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāĻŦ⧇ āύāĻž āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϜāĻžā§ŸāĻ—āĻžā§Ÿ Interface āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻŸā§‡āĻŽā§āĻĒāϞ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϰ⧇āϖ⧇ āĻĻāĻŋāĻŦā§‹ āϤāĻžāϰāĻĒāϰ āĻŦāĻžāϰ āĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āύāĻŋāĻšā§‡ āϤāĻžāϰ āϕ⧋āĻĄ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋āσ

interface IUser {
  id: number;
  name: string;
  age: number;
}

let users: IUser[] = [];

let user1: IUser = {
  id: 10,
  name: "Rahi Ahmed",
  age: 19,
};

let user2: IUser = {
  id: 15,
  name: "Alamin Ahmed",
  age: 20,
};

users.push(user1);
users.push(user2);

let printAllUserInfo = (user: IUser) => {
  console.log(
    `User Id is ${user.id}, User Name is ${user.name} and User Age is ${user.age}`
  );
};

users.forEach((user) => printAllUserInfo(user));

āωāĻĒāϰ⧇ Interface āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻŸā§‡āĻŽā§āĻĒāϞ⧇āϟ āĻŦāĻžāύāĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇ āϝ⧇āϟāĻž āĻ…āύ⧇āĻ• āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤


Generic

Generic āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāĻŽāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āϝ⧇ āϝ⧇āϕ⧋āύ⧋ āĻĄā§‡āϟāĻž āĻĻāĻŋāϞ⧇āĻ“ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ āϕ⧋āύ⧋ āχāϰāϰ āφāϏāĻŦ⧇ āύāĻžāĨ¤ āĻŽāĻžāύ⧇ āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ āϝ⧇āϕ⧋āύ⧋ āϟāĻžāχāĻĒ⧇āϰ āĻĄā§‡āϟāĻž āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ°ā§Ÿā§‡āϛ⧇ āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž Generic āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϝ⧇āϕ⧋āύ⧋ āϰāĻ•āĻŽā§‡āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āϰāĻŋāϏāĻŋāĻŦ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āύāĻŋāĻšā§‡ ā§ŠāϟāĻŋ example āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ⧋āσ

// Generic with a single parameter
function userInfo1<x>(user: x) {
  console.log(user);
}

userInfo1("Rahi");

// Generic with nultiple single parameter
function userInfo2<x, y>(user: x, active: y) {
  if (active) {
    console.log(user);
  }
}

userInfo2("Alamin", true);

// user generic with arrow function
const userInfo3 = <x, y>(user: x, active: y) => {
  if (active) {
    console.log(user);
  }
};

userInfo2("Naim", false);

Generic āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ <> āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϝ⧇ āύāĻžāĻŽ āĻĻ⧇āĻ“ā§ŸāĻžāϰ āϏ⧇āϟāĻž āĻĻāĻŋāĻŦā§‹ ( āύāĻžāĻŽāϟāĻŋ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ⧇āϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ )āĨ¤ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒāϞ⧇āϰ āϜāĻ¨ā§āϝāĻ“ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšā§Ÿā§‡āϛ⧇āĨ¤

About

Hello developers, In this repository I am writed my all notes of typescript in bengali language. This repository can be help you to understand any typescript subject.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published