Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Buat alias tipe berikut:

  • Employee: id (number), name (string), department (string)
  • Manager: Employee diperluas (melalui &) dengan teamSize (number)
  • Contact: email (string)
  • Developer: irisan dari Employee, Contact, dan {yearsExperience: number}

Buat:

  • teamLead bertipe Manager: id 101, nama "Alice Johnson", departemen "Engineering", teamSize 8
  • dev bertipe Developer: id 102, nama "Bob Smith", departemen "Engineering", email "bob@company.com", yearsExperience 5

Buat fungsi getManagerSummary yang menerima Manager dan mengembalikan [name] manages [teamSize] people.

Cetak, masing-masing pada barisnya sendiri:

  1. hasil dari getManagerSummary(teamLead)
  2. [name] has [yearsExperience] years of experience untuk dev
  3. departemen dari teamLead
  4. 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
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online