Memperluas Bentuk
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 41 dari 73.
Bentuk yang berkaitan sering memiliki field yang sama. Setiap Admin juga merupakan User; menyalin field yang sama ke dalam kedua deklarasi dapat membuat keduanya berbeda seiring waktu.
Kamu sudah mengenal operator irisan & saat menggabungkan alias. Operator ini bekerja dengan cara yang sama untuk bentuk. A & B berarti "memiliki semua yang ada di A dan semua yang ada di B":
type User = {name: string, age: number}
type Admin = User & {level: number}
-- Admin sekarang memerlukan: name, age, DAN level
local root: Admin = {name = "Root", age = 35, level = 9}TypeScript memerlukan kata kunci extends terpisah untuk interface, sedangkan Luau tidak memerlukan hal baru: irisan sudah menjalankan tugasnya. Kamu dapat menggabungkan beberapa bagian:
type Contact = {email: string}
type Developer = User & Contact & {yearsExperience: number}Jangan keliru membedakan & dengan |: union A | B adalah salah satu bentuk, sedangkan irisan A & B harus memenuhi keduanya sekaligus. Karena Admin memiliki semua field User, nilai Admin dapat diberikan di mana pun User diharapkan.
Tantangan
MudahBuat alias tipe berikut:
Employee:id(number),name(string),department(string)Manager:Employeediperluas (melalui&) denganteamSize(number)Contact:email(string)Developer: irisan dariEmployee,Contact, dan{yearsExperience: number}
Buat:
teamLeadbertipeManager: id101, nama"Alice Johnson", departemen"Engineering", teamSize8devbertipeDeveloper: id102, nama"Bob Smith", departemen"Engineering", email"bob@company.com", yearsExperience5
Buat fungsi getManagerSummary yang menerima Manager dan mengembalikan [name] manages [teamSize] people.
Cetak, masing-masing pada barisnya sendiri:
- hasil dari
getManagerSummary(teamLead) [name] has [yearsExperience] years of experienceuntukdev- departemen dari
teamLead - email dari
dev
Coba sendiri
-- Tulis kodemu di sini
-- 1) definisikan Employee, lalu Manager / Contact / Developer dengan &
-- 2) buat teamLead dan dev
-- 3) tulis getManagerSummary
-- 4) cetak empat baris yang diminta
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar Luau
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembalianMenentukan Tipe Fungsi AnonimFungsi yang Tidak Mengembalikan NilaiParameter OpsionalNilai Default ParameterFungsi VariadikMendefinisikan Tipe FungsiRangkuman: Fungsi Bertipe2Tipe Inti
Tipe Dasar: num, str, boolTipe 'any': Jalan Keluar DaruratTipe 'unknown'Nil & Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Tabel Bertipe: array dan Map
array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMelakukan Iterasi pada TabelTabel dengan Bentuk Campuranarray Bertipe Multidimensitable.unpack dan VarargsRingkasan: array dan MapLatihan sendiri: Compiler Luau online