Menu
CoddyTech

Memperluas Bentuk

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 43 dari 80.

Bentuk yang berkaitan sering memiliki field yang sama. Setiap Admin juga merupakan User; menyalin field yang sama ke kedua deklarasi bisa membuat keduanya berbeda.

Kamu telah mempelajari 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 antarmuka, sedangkan Luau tidak memerlukan hal baru: irisan sudah melakukan tugasnya. Kamu bisa menggabungkan beberapa bagian:

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

Jangan bingung antara & dan |: union A | B berarti bentuk yang salah satu, sedangkan irisan A & B harus memenuhi keduanya sekaligus. Karena Admin memiliki semua field User, nilai Admin bisa diteruskan ke mana pun nilai User diharapkan.

challenge icon

Tantangan

Mudah

Perluas bentuk employee menjadi bentuk manager.

  1. Tulis type Employee = {name: string, department: string} dan type Manager = Employee & {teamSize: number}.
  2. Buat local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}.
  3. Cetak `{teamLead.name} manages {teamLead.teamSize} people`, lalu teamLead.department.

Tekan Run Code: output menampilkan Alice Johnson manages 8 people dan Engineering.

Coba sendiri

-- 1) ketik type Employee, lalu ketik type Manager = Employee & {...}
-- 2) ketik local teamLead: Manager = {...}
-- 3) gunakan print untuk menampilkan baris ringkasan, lalu departemennya

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online