Menu
Coddy logo textTech

הצהרות טיפוס

חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 68 מתוך 73.

לפעמים ידוע לך יותר על ערך ממה שבודק הטיפוסים של Luau יודע: למשל, ערך שהטיפוס שלו הוא any, ואתה יודע שהוא למעשה רשומת משתמש. הצהרת טיפוס (שנקראת גם המרת טיפוס) מאפשרת לך לומר לבודק: "סמוך עליי, התייחס לערך הזה כאילו הוא מטיפוס זה". אופרטור ההמרה של Luau הוא :::

type User = {id: number, username: string}

local raw: any = {id = 42, username = "alice_dev"}
local user = raw :: User
print(user.username) -- בודק הטיפוסים מכיר כעת את השדות

המרה משנה רק את מה שבודק הטיפוסים מאמין. היא אינה עושה דבר בזמן ריצה. היא אף פעם לא ממירה ערך: "5" :: any הוא עדיין המחרוזת "5", ולא המספר 5 (השתמש ב-tonumber להמרה בפועל). והיא אף פעם לא מאמתת: אם תצהיר על טיפוס שגוי, ההמרה עצמה לא תגרום לשגיאה. הקוד שלך פשוט יתנהג באופן שגוי בהמשך, כשייגע בשדות שאינם קיימים.

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

challenge icon

אתגר

קל

דמה עיבוד של רשומות שמגיעות ממקור חיצוני ללא מידע על טיפוסים.

  • הצהר על type User = {id: number, username: string, isActive: boolean}.
  • כתוב פונקציה describeUser(data: any): string שמבצעת המרה של data ל־User באמצעות :: ומחזירה User [id]: [username] (Active: [isActive]) שנבנה באמצעות אינטרפולציה של מחרוזת.

קוד הפתיחה כבר מגדיר שלוש רשומות גולמיות מטיפוס any. קרא ל־describeUser עבור כל אחת מהן והדפס את שלוש התוצאות, לפי הסדר.

השורה הראשונה הצפויה: User 42: alice_dev (Active: true)

נסו בעצמכם

-- רשומות גולמיות ממקור חיצוני: מוגדרות עם הטיפוס `any`
local rawUser1: any = {id = 42, username = "alice_dev", isActive = true}
local rawUser2: any = {id = 15, username = "bob_admin", isActive = false}
local rawUser3: any = {id = 99, username = "charlie_user", isActive = true}

-- כתבו כאן קוד
-- 1) הגדירו את הטיפוס User
-- 2) describeUser(data: any): string — בצעו המרת טיפוס באמצעות :: ובנו את ההודעה
-- 3) הדפיסו את התיאור של כל שלוש הרשומות
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מבוא ל-Luau

תרגלו בעצמכם: קומפיילר Luau אונליין