Rozszerzanie kształtów
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 43 z 80.
Powiązane kształty często mają wspólne pola. Każdy Admin jest również User; kopiowanie wspólnych pól do obu deklaracji grozi ich rozbieżnością.
Operator przecięcia & pojawił się przy łączeniu aliasów. Działa dokładnie tak samo w przypadku kształtów. A & B oznacza „ma wszystko z A i wszystko z B”:
type User = {name: string, age: number}
type Admin = User & {level: number}
-- Admin wymaga teraz: name, age ORAZ level
local root: Admin = {name = "Root", age = 35, level = 9}Podczas gdy TypeScript wymaga osobnego słowa kluczowego extends dla interfejsów, Luau nie potrzebuje niczego nowego: przecięcia już spełniają to zadanie. Możesz połączyć kilka części:
type Contact = {email: string}
type Developer = User & Contact & {yearsExperience: number}Nie myl & z |: unia A | B oznacza jeden albo drugi kształt, podczas gdy przecięcie A & B musi spełniać oba warunki jednocześnie. A ponieważ Admin ma wszystkie pola User, wartość Admin można przekazać wszędzie tam, gdzie oczekiwany jest User.
Wyzwanie
ŁatwyRozszerz typ pracownika, tworząc typ menedżera.
- Zapisz
type Employee = {name: string, department: string}itype Manager = Employee & {teamSize: number}. - Utwórz
local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}. - Wyświetl
`{teamLead.name} manages {teamLead.teamSize} people`, a następnieteamLead.department.
Naciśnij Run Code: wynik to Alice Johnson manages 8 people i Engineering.
Spróbuj swoich sił
-- 1) type Employee, następnie type Manager = Employee & {...}
-- 2) local teamLead: Manager = {...}
-- 3) print wiersz podsumowania, a następnie dział
Wszystkie lekcje w sekcji Wprowadzenie do Luau
1Pierwsze kroki z Luau
Czym jest Luau?Dlaczego warto używać Luau?Twój pierwszy kod w LuauSprawdzanie typów i tryby błędówPodsumowanie: Wprowadzenie do Luau4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji anonimowychFunkcje niezwracające wartościParametry opcjonalneDomyślne wartości parametrówWartości domyślne dla typów BooleanFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Podstawowe typy
Number, String i BooleanTyp 'any': wyjście awaryjneTyp 'unknown'Nil i typy opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Aliasy, typy sumy i przekroju
Aliasy typów dla typów prostychTypy sumyPraca z typami sumyTypy literałoweTypy przekrojuŁączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów3Typowane tabele: tablice i mapy
Typowane tabliceDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie i uzyskiwanie dostępu do mapIterowanie po tabelachTabele o mieszanej strukturzeOdczytywanie siatkiTworzenie siatkitable.unpackPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online