אובייקטי TypeScript פשוטים למתחילים

אובייקטים הם חלק בסיסי ב-JavaScript וב-TypeScript. הם מאפשרים לך לקבץ נתונים ופונקציות קשורות יחד, מה שמספק דרך לדגמן ישויות בעולם האמיתי בקוד שלך. TypeScript משפר אובייקטי JavaScript עם בטיחות סוג, מה שהופך את הקוד שלך לחיזוי יותר וקל יותר לתחזוקה. מדריך זה יפשט את הרעיון של אובייקטי TypeScript למתחילים.

מהו אובייקט ב-TypeScript?

object הוא אוסף של זוגות מפתח-ערך, כאשר המפתחות הם מחרוזות (או סמלים) וערכים יכולים להיות מכל סוג. ב-TypeScript, אתה יכול להגדיר את הצורה של אובייקט באמצעות סוגים או ממשקים, כדי להבטיח שהאובייקט עוקב אחר מבנה מסוים.

הגדרת אובייקטים פשוטים ב-TypeScript

נתחיל בהגדרת אובייקט פשוט ב-TypeScript. זה דומה לאופן שבו אתה מגדיר אובייקטים ב-JavaScript אבל עם היתרון הנוסף של בטיחות סוג.

דוגמה לאובייקט בסיסי

כך מגדירים אובייקט פשוט ב-TypeScript:

const person: { name: string; age: number } = {
  name: "Alice",
  age: 25
};

console.log(person.name); // Output: Alice
console.log(person.age);  // Output: 25

בדוגמה זו, לאובייקט person יש שני מאפיינים: name (מהסוג string) ו-age (מהסוג number) ). TypeScript יבטיח שהאובייקט דבק במבנה הזה.

שימוש בממשקים להגדרת מבנה אובייקט

ממשק הוא תכונה רבת עוצמה ב-TypeScript המגדירה את הצורה של אובייקט. ממשקים מספקים דרך להגדיר חוזים בתוך הקוד שלך, ומבטיחים שאובייקטים דבקים במבנה מסוים.

הגדרת ממשק

הנה איך להשתמש בממשק כדי להגדיר את המבנה של אובייקט:

interface Person {
  name: string;
  age: number;
}

const person: Person = {
  name: "Bob",
  age: 30
};

console.log(person.name); // Output: Bob
console.log(person.age);  // Output: 30

בדוגמה זו, ממשק Person מגדיר את המבנה של אובייקט אדם. המשתנה person חייב לדבוק במבנה הזה, אחרת TypeScript יזרוק שגיאה.

מאפיינים אופציונליים באובייקטים

TypeScript מאפשר לך להגדיר מאפיינים אופציונליים באובייקטים באמצעות הסמל ?. ניתן להשמיט מאפיינים אופציונליים בעת יצירת אובייקטים, מה שמספק גמישות באופן שבו אתה מגדיר מבני אובייקט.

דוגמה עם מאפיינים אופציונליים

הנה דוגמה שבה המאפיין phoneNumber הוא אופציונלי:

interface Employee {
  name: string;
  age: number;
  phoneNumber?: string; // Optional property
}

const employee1: Employee = {
  name: "John",
  age: 28
};

const employee2: Employee = {
  name: "Doe",
  age: 32,
  phoneNumber: "123-456-7890"
};

console.log(employee1.phoneNumber); // Output: undefined
console.log(employee2.phoneNumber); // Output: 123-456-7890

בדוגמה זו, ל-employee1 אין מאפיין phoneNumber, ואילו ל-employee2 יש. שניהם תקפים לפי ממשק Employee.

מאפיינים לקריאה בלבד באובייקטים

TypeScript מאפשר לך ליצור מאפיינים readonly, ומונע מהם להשתנות לאחר יצירת האובייקט. זה שימושי ליצירת אובייקטים בלתי ניתנים לשינוי.

דוגמה עם מאפיינים לקריאה בלבד

כך מגדירים מאפיינים לקריאה בלבד:

interface Car {
  readonly brand: string;
  model: string;
}

const car: Car = {
  brand: "Toyota",
  model: "Camry"
};

// car.brand = "Honda"; // Error: Cannot assign to 'brand' because it is a read-only property

car.model = "Corolla"; // Valid
console.log(car.model); // Output: Corolla

בדוגמה זו, המאפיין brand מסומן כ-readonly. כל ניסיון לשנות אותו יגרום לשגיאה בזמן הידור.

אובייקטים מקוננים ב-TypeScript

ניתן לקנן אובייקטים מסוג TypeScript, כלומר אובייקט יכול להכיל אובייקט אחר כמאפיין. זה נפוץ במבני נתונים מורכבים.

דוגמה לאובייקטים מקוננים

הנה דוגמה לאובייקט מקונן:

interface Address {
  street: string;
  city: string;
  zipCode: string;
}

interface User {
  name: string;
  age: number;
  address: Address; // Nested object
}

const user: User = {
  name: "Emily",
  age: 27,
  address: {
    street: "123 Main St",
    city: "New York",
    zipCode: "10001"
  }
};

console.log(user.address.city); // Output: New York

בדוגמה זו, לממשק User יש אובייקט Address מקונן. האובייקט user עוקב אחר המבנה הזה, ומאפשר גישה למאפיינים מקוננים.

מַסְקָנָה

אובייקטים ב-TypeScript חזקים וגמישים יותר מאובייקטי JavaScript רגילים בשל הגדרות טיפוס, מאפיינים אופציונליים, מאפיינים לקריאה בלבד ומבנים מקוננים. על ידי הגדרת אובייקטים באמצעות ממשקים, תוכל ליצור קוד חזק יותר וללא שגיאות. התחל להשתמש באובייקטי TypeScript בפרויקטים שלך כדי לרתום את מלוא העוצמה של בטיחות סוג ונתונים מובנים.