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.
Görev
KolayBir çalışan şeklini yönetici şekline genişlet.
type Employee = {name: string, department: string}vetype Manager = Employee & {teamSize: number}yaz.local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}oluştur.- Önce
`{teamLead.name} manages {teamLead.teamSize} people`, ardındanteamLead.departmentdeğ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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışma
Parametreleri ve Dönüş Değerlerini Tür BelirtmeAnonim Fonksiyonları Tür BelirtmeDeğer Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriBoolean Değerler için VarsayılanlarDeğişken Sayıda Parametre Alan FonksiyonlarFonksiyon Türlerini TanımlamaTekrar: Tür Belirtilmiş Fonksiyonlar2Temel Türler
Number, String ve Boolean'any' Türü: Kaçış Yolu'unknown' TürüNil ve İsteğe Bağlı TürlerTür Çıkarımı UygulamadaAçık Tür Ek AçıklamalarıTekrar: Temel Türler Alıştırması5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Türlenmiş Tablolar: Diziler ve Map’ler
Türlenmiş DizilerÖğe Ekleme ve OkumaMap Türü Nedir?Map’leri Tanımlama ve ErişmeTablolar Üzerinde YinelemeKarma Şekilli TablolarBir Izgarayı OkumaBir Izgara Oluşturmatable.unpackÖzet: Diziler ve Map’ler6Tablo Biçimlerini Tiplendirme
Satır İçi Biçim AçıklamalarıBiçimler İçin Tip Takma Adlarıİsteğe Bağlı ÖzelliklerBiçimler ve Serbest TablolarBiçimleri GenişletmeBiçimlere Metot EklemeSelf ve İki Nokta MetotlarıÖzet: Tablo Biçimlerini TanımlamaKendi başına pratik yap: Online Luau derleyicisi