TypeScript

در TypeScript، کلاسها روشی برای تعریف الگوهایی برای ایجاد اشیاء با ویژگیها و متدهای مشترک هستند. TypeScript با افزودن یادداشتهای نوع و ویژگیهای دیگری مانند دسترسی به مشخصکنندهها و اینترفیسها، کلاسهای JavaScript را بهبود میبخشد.
نحو پایه:
class Person {
// ویژگیها
firstName: string;
lastName: string;
// سازنده
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
// متد
greet(): string {
return `Hello, my name is ${this.firstName} ${this.lastName}.`;
}
}
ایجاد یک شیء:
const person1 = new Person(‘John’, ‘Doe’);
console.log(person1.greet()); // “Hello, my name is John Doe.”
مشخصکنندههای دسترسی:
TypeScript اجازه استفاده از public
، private
و protected
را میدهد تا دسترسی به ویژگیها و متدهای کلاس را کنترل کند.
public
: پیشفرض است. ویژگیها و متدها از هر جایی قابل دسترسی هستند.private
: ویژگیها و متدها فقط در داخل کلاس قابل دسترسی هستند.protected
: ویژگیها و متدها فقط در داخل کلاس و زیرکلاسهای آن قابل دسترسی هستند.
class Employee {
private employeeId: number;
public name: string;
constructor(employeeId: number, name: string) {
this.employeeId = employeeId;
this.name = name;
}
public displayInfo(): string {
return `Employee Name: ${this.name}, ID: ${this.employeeId}`;
}
}
وراثت:
TypeScript از وراثت کلاسها پشتیبانی میکند. یک کلاس میتواند کلاس دیگری را گسترش دهد و ویژگیها و متدهای آن را به ارث ببرد.
class Manager extends Employee {
constructor(employeeId: number, name: string) {
super(employeeId, name); // فراخوانی سازنده کلاس والد
}
public displayManagerInfo(): string {
return `${this.name} is a manager.`;
}
}
const manager = new Manager(1, ‘Alice’);
console.log(manager.displayInfo()); // “Employee Name: Alice, ID: 1”
console.log(manager.displayManagerInfo()); // “Alice is a manager.”
Getter و Setter:
میتوانید از متدهای get
و set
برای دسترسی یا تغییر ویژگیها استفاده کنید.
class Product {
private _price: number;
constructor(price: number) {
this._price = price;
}
get price(): number {
return this._price;
}
set price(value: number) {
if (value < 0) {
console.log(‘Price cannot be negative.’);
} else {
this._price = value;
}
}
}
const product = new Product(100);
console.log(product.price); // 100
product.price = 120; // بهروزرسانی با موفقیت
product.price = -50; // قیمت نمیتواند منفی باشد.
دیدگاهتان را بنویسید