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

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