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.
Tantangan
MudahPerluas bentuk employee menjadi bentuk manager.
- Tulis
type Employee = {name: string, department: string}dantype Manager = Employee & {teamSize: number}. - Buat
local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}. - Cetak
`{teamLead.name} manages {teamLead.teamSize} people`, laluteamLead.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
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Mengetik Parameter dan Nilai KembalianMengetik Fungsi AnonimFungsi Tanpa Nilai KembalianParameter OpsionalNilai Parameter DefaultNilai Default untuk BooleanFungsi VariadikMendefinisikan Tipe FungsiUlasan: Fungsi Bertipe2Tipe Inti
Number, String, dan BooleanTipe 'any': Jalan KeluarTipe 'unknown'Nil dan 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 & map
Array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMenelusuri TabelTabel dengan Bentuk CampuranMembaca GridMembuat Gridtable.unpackRangkuman: array dan mapLatihan sendiri: Compiler Luau online