- Introduction
- Installation
- How works TypeScript
- TypeScript Configuration
- Data Types
- Class
- Inheritance
- Abstract Class
- Encapsulation
- Function Signature
- Interface
- Generic Type
types / additional features + javascript āĻŽāĻŋāϞā§āĻ āĻāĻŋāύā§āϤ⧠TypeScript āĻāĻ āĻŋāϤāĨ¤ TypeScript āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽāϰāĻž āĻāĻžāĻāĻĒ āĻĢā§āϰāĻŋ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŋ ( āĻŽāĻžāύ⧠āĻā§āύ variable āĻāϰ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻā§āĻŽāύ āĻšāĻŦā§ )āĨ¤ TypeScript ⧍ā§Ļ⧧⧍ āϏāĻžāϞ⧠āĻĄā§āĻā§āϞāĻĒ āĻāϰāĻž āĻšā§ā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āϏāĻĢāĻ āϤā§āϰāĻŋ āĻāϰā§āĻā§ āĻāĻŦāĻ āĻŽā§āĻāύāĻā§āĻāύ āĻāϰāĻā§āĨ¤
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
āĻāĻĒāϰā§āϰ Diagram āϞāĻā§āώ āĻāϰāϞā§āĻ āĻŦā§āĻāĻž āϝāĻžāĻā§āĻā§ āϝ⧠TypeScript program run āĻāϰāĻžāϰ āϏā§āĻāĻž Compile āĻšā§ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āϏā§āĻāĻŋ Javascript āĻ āϰā§āĻĒāĻžāύā§āϤāϰ āĻšā§ā§ Output āĻĻā§āĻāĻžā§āĨ¤ āĻāϰ āĻāĻāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻĄ āĻāĻĄāĻŋāĻāϰā§āϰ āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ⧠āϝ⧠āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋāϤ⧠āĻšā§ āϏā§āĻāĻž āύāĻŋāĻā§ āĻĻā§āĻā§āĻž āĻšāϞā§...
tsc file-name
// āĻāϰ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāύ āύāĻž āϝ⧠āĻŦāĻžāϰ āĻŦāĻžāϰ āĻāĻ āĻāĻŽāĻžāύā§āĻĄ āϰāĻžāύ āĻāϰāĻŦā§āύ āϤāĻžāĻšāϞ⧠āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
tsc file-name --watch
- 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 āĻāϰ āĻŽāϧā§āϝ⧠any āĻšāĻā§āĻā§ āϏā§āĻĒāĻžāϰ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻāϰ āĻŽāϧā§āϝ⧠āϰā§ā§āĻā§ Built-in data types āĻ user define 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 āĻĄā§āĻāĻž āĻāĻžāĻāĻĒāĨ¤ āĻāĻā§āϞ⧠āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ āĻā§āϝāϏā§āϤāĨ¤
- Arrays
- Enums
- Classes
- Interfaces
āĻā§āύ⧠āϏāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻ 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 āϤ⧠āĻāĻŽāϰāĻž āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻāĻŽāϰāĻž, āĻāĻŋāύā§āϤ⧠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];
āĻ āύā§āĻ āϏāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ (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 āϤā§āĨ¤
āĻ āύā§āĻ āϏāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§ āĻāĻŽāύ āĻāĻŋāĻā§ 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
āĻāĻĒāϰā§āϰ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāϰāĻž āύāĻŋāĻā§āϰāĻž āĻā§āύ⧠variable āĻāϰ value āϏā§āĻ āĻāϰāĻŦā§ āϏā§āĻāĻž āĻĻā§āĻāĻžāύ⧠āĻšā§ āύāĻŋ! āύāĻŋāĻā§ āϏā§āĻāĻž āĻĻā§āĻāĻžāύ⧠āĻšāĻŦā§
Set The Value In Enum Variable
āĻāĻāĻžāĻŦā§ āĻāĻŽāϰāĻž āϝā§āĻā§āύ⧠variable āĻ value āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻāϰ āϝāĻĻāĻŋ āĻā§āύ⧠value āϏā§āĻ āύāĻž āĻāϰāĻŋ āϤāĻžāĻšāϞ⧠Enum āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āύāĻžāĻŽā§āĻŦāĻžāϰ value āϏā§āĻ āĻāϰ⧠āĻĻā§ā§āĨ¤
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;
āύāĻŋāĻā§ āĻĻā§āĻāĻžāύ⧠āĻšāϞ⧠āϝ⧠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 āĻĻāĻŋāĻŦā§ āύāĻžāĨ¤
āϝāĻāύ āĻŦā§ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻŦāĻžāύāĻžāύ⧠āĻšā§ āϤāĻāύ āĻāĻāĻ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āύāĻŋā§ā§ āĻ āύā§āĻ āĻŦāĻžāϰ āϞāĻŋāĻāϤ⧠āĻšā§ āϝāĻžāϰ āĻāύā§āϝ āĻāĻžāĻāĻĒāϏā§āĻāĻŋāĻĒā§āĻ āĻāĻŽāĻžāĻĻā§āϰ āĻĻāĻŋāĻā§āĻā§ āύāĻŋāĻā§āϰ āĻāĻžāϏā§āĻāĻŽ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻŦāĻžāύāĻžāύā§āϰ āϏā§āϝā§āĻāĨ¤ āĻāĻžāϏā§āĻāĻŽ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻāϰ āϏāĻŦāĻā§ā§ā§ āĻŦā§ āϏā§āĻŦāĻŋāϧāĻž āĻšāĻā§āĻā§ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻĄāĻā§ āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āϰāĻŋāĻĄā§āĻŦāϞ āĻŦāĻžāύāĻŋā§ā§ āĻĻā§ā§ āĻāĻŦāĻ āĻŦāĻžāĻ āĻĢā§āϰāĻŋ āĻŦāĻžāύāĻžā§ āĻā§āĻĄāĻā§āĨ¤ āĻāĻžāϏā§āĻāĻŽ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻāĻŽāϰāĻž āϏāĻŦāĻāĻŋāĻā§āϰ āĻāύā§āϝ āĻŦāĻžāύāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§ āϝā§āĻŽāύ - ( 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 )āĨ¤
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 āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āϞāĻžāϏā§āϰ āύāĻžāĻŽ āĻĻā§āĻā§āĻžāϰ āĻĒāϰ 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 āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻĨā§āĻā§ āĻā§āύ⧠āĻāĻŋāĻā§ āϞā§āĻāĻŋā§ā§ āϰāĻžāĻāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ āϝā§āĻŽāύāĻ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ āϝā§āĻāĻžāϰ āĻāĻŋāϤāϰ⧠āĻāĻŋ āĻšāĻā§āĻā§ āϏā§āĻāĻž āĻāĻāĻāĻžāϰāĻā§ āĻāĻžāύāϤ⧠āĻĻā§āĻā§āĻž āϝāĻžāĻŦā§ āύāĻž āĻāĻāϰāĻāĻŽ āĻā§āώā§āϤā§āϰ⧠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 āĻšāĻā§āĻā§ Object-Oriented Programming āĻāϰ ā§ĒāĻāĻŋ āĻĢāĻžāύā§āĻĄāĻžāĻŽā§āύā§āĻāĻžāϞ āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋāĨ¤ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āĻ āĻŦā§āĻā§āĻā§āĻā§āϰ āĻāϏāϞ āĻĢāĻžāĻāĻļāύ āĻ āĻĨāĻŦāĻž āĻŽā§āĻĨāĻĄāĻā§āϞ⧠āϞā§āĻāĻŋā§ā§ āϰāĻžāĻāĻž āϝāĻžā§ ( āĻĒāĻžāĻŦāϞāĻŋāĻ, āĻĒā§āϰāĻžāĻāĻā§āĻ ) āĻāϤā§āϝāĻžāĻĻāĻŋ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§āĨ¤ Encapsulation āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĄāĻžāĻāĻžāϰ āĻāĻā§āϏā§āϏ āĻāύāĻā§āϰā§āϞ āĻāϰāĻž āϏāĻŽā§āĻāĻŦāĨ¤ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĄāĻžāĻāĻžāĻā§ āĻĒā§āϰāĻā§āĻā§āĻā§āĻ āϰāĻžāĻāĻž āϏāĻŽā§āĻāĻŦāĨ¤ Encapsulation āĻāϰ ā§ŠāĻāĻŋ key principles āϰā§ā§āĻā§ āύāĻŋāĻā§ āĻĻā§āĻā§āĻž āĻšāϞā§āĻ
- Data Hiding
- Access Control
- Modularity
Encapsulation āĻāϰ āĻŽā§āϞ āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻšāĻā§āĻā§ āĻĄāĻžāĻāĻžāĻā§ āϏā§āϰāĻā§āώāĻŋāϤ āϰāĻžāĻāĻžāĨ¤ āϝāĻžāϰ āĻāύā§āϝ Data Hiding āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āϝā§āϏāĻŦ implementation āϰā§ā§āĻā§ āĻĻā§āĻā§āϞā§āĻā§ āĻŦāĻžāĻšāĻŋāϰā§āϰ āĻĨā§āĻā§ āϞā§āĻāĻŋā§ā§ āϰāĻžāĻāĻž āϝāĻžā§āĨ¤ āϝā§āĻā§āϞā§āĻā§ āĻŦāĻžāĻšāĻŋāϰ⧠āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻāĻžāĻ āύāĻž āϏā§āĻā§āϞā§āĻā§ āĻĒā§āϰāĻžāĻāĻā§āĻ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ āϏā§āĻā§āϞā§āĻā§ āĻāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻāύā§āϝ ⧍āĻāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻŽā§āĻĨāĻĄ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ ( āϏā§āĻ āĻāĻŦāĻ āĻā§āĻ ) āύāĻžāĻŽā§āĨ¤ Data Hiding unauthorized āĻāĻā§āϏā§āϏ āĻā§āϞ⧠āĻĒā§āϰāϤāĻŋāϰā§āϧ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
Access Control āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĄāĻžāĻāĻžāĻā§āϞā§āϰ āĻāĻā§āϏā§āϏ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŋ ( āĻĒāĻžāĻŦāϞāĻŋāĻ, āĻĒā§āϰāĻžāĻāĻā§āĻ, āĻĒā§āϰāĻā§āĻā§āĻā§āĻĄ, āϰāĻŋāĻĄāĻ āύāϞāĻŋ )āĨ¤ Access Control āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻž āϝāĻžā§ āϝ⧠āĻā§āϞāĻžāϏ⧠āĻĨāĻžāĻāĻž āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋāĻā§ āĻŦāĻžāĻšāĻŋāϰ⧠āĻĨā§āĻā§ āĻāĻā§āϏā§āϏ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻ āĻĨāĻŦāĻž āύāĻžāĨ¤
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 āĻĻā§āĻŦāĻžāϰāĻž āĻāĻŽāϰāĻž āĻŦāϞ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŋ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāϤāĻā§āϞ⧠āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āύāĻŋāĻŦā§, āĻāĻŋ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§, āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞ⧠āĻā§āύ āĻāĻžāĻāĻĒā§āϰ āĻšāĻŦā§ āĻāĻāĻā§āϞā§āĨ¤ āĻāϤ⧠āĻāϰ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻĄāĻā§āϞ⧠āϰāĻŋāĻĄā§āĻŦāϞ āĻšā§ āĻāĻŦāĻ āĻāĻŽāϰāĻž āϝāĻāύ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āϝāĻžāĻŦā§ āϤāĻāύ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻā§āϏā§āĻ āĻāϰāĻž āĻšā§ āϝ⧠āϤā§āĻŽāĻžāϰ āĻĢāĻžāĻāĻļāύ āĻāĻ āĻāĻ āĻāĻŋāύāĻŋāϏāĻā§āϞ⧠āĻāĻžā§ āϤā§āĻŽāĻžāĻā§ āĻāĻāĻā§āϞā§āĻ āĻĻāĻŋāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϰāϰ āĻāĻŽā§ āϝāĻžā§āĨ¤ āύāĻŋāĻ⧠⧍āĻāĻŋ āĻāĻā§āϏāĻžāĻŽā§āĻĒāϞ āĻĻā§āĻā§āĻž āĻšāϞā§āĻ
// 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 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 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āϝā§āĻā§āύ⧠āϰāĻāĻŽā§āϰ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āϰāĻŋāϏāĻŋāĻŦ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ āύāĻŋāĻā§ ā§ŠāĻāĻŋ 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 āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ <>
āĻĻāĻŋāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āϝ⧠āύāĻžāĻŽ āĻĻā§āĻā§āĻžāϰ āϏā§āĻāĻž āĻĻāĻŋāĻŦā§ ( āύāĻžāĻŽāĻāĻŋ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒā§āϰ āĻāĻžā§āĻāĻžā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§ )āĨ¤ āĻāĻŦāĻ āĻŽāĻžāϞā§āĻāĻŋāĻĒāϞā§āϰ āĻāύā§āϝāĻ āĻĻā§āĻāĻžāύ⧠āĻšā§ā§āĻā§āĨ¤