Menu
CoddyTech

Biçimleri Genişletme

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 43 / 80.

Birbiriyle ilişkili şekiller genellikle ortak alanlara sahiptir. Her Admin aynı zamanda bir User olduğundan, ortak alanları her iki bildirimde de kopyalamak bunların zamanla birbirinden farklılaşmasına yol açabilir.

Takma adları birleştirirken kesişim operatörü & ile karşılaştın. Şekiller için de tamamen aynı şekilde çalışır. A & B, "A'daki ve B'deki her şeye sahip" anlamına gelir:

type User = {name: string, age: number}
type Admin = User & {level: number}

-- Admin artık şunları gerektirir: name, age VE level
local root: Admin = {name = "Root", age = 35, level = 9}

TypeScript arayüzler için ayrı bir extends anahtar sözcüğüne ihtiyaç duyarken, Luau'da yeni bir şeye gerek yoktur: kesişimler zaten bu işi görür. Birkaç parçayı zincirleyebilirsin:

type Contact = {email: string}
type Developer = User & Contact & {yearsExperience: number}

& ile | operatörlerini karıştırma: birleşim olan A | B iki şekilden birini ifade ederken, kesişim olan A & B aynı anda her ikisini de karşılamalıdır. Ayrıca Admin tüm User alanlarına sahip olduğundan, bir Admin değeri, User beklenen her yerde kullanılabilir.

challenge icon

Görev

Kolay

Bir çalışan şeklini yönetici şekline genişlet.

  1. type Employee = {name: string, department: string} ve type Manager = Employee & {teamSize: number} yaz.
  2. local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8} oluştur.
  3. Önce `{teamLead.name} manages {teamLead.teamSize} people`, ardından teamLead.department değerini yazdır.

Kodu çalıştır düğmesine bas: çıktı olarak Alice Johnson manages 8 people ve Engineering görünür.

Kendin dene

-- 1) type Employee, ardından type Manager = Employee & {...}
-- 2) local teamLead: Manager = {...}
-- 3) önce özet satırını, ardından departmanı yazdır

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi