- 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 āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° <>
āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¯ā§ āĻ¨āĻžāĻŽ āĻĻā§āĻā§āĻžāĻ° āĻ¸ā§āĻāĻž āĻĻāĻŋāĻŦā§ ( āĻ¨āĻžāĻŽāĻāĻŋ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒā§āĻ° āĻāĻžā§āĻāĻžā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§ )āĨ¤ āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻĻā§āĻāĻžāĻ¨ā§ āĻšā§ā§āĻā§āĨ¤