Skip to content

Asfak00/typescript-learning

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