셰이프 확장하기
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 43번째.
관련된 형태는 흔히 필드를 공유합니다. 모든 Admin은 User이기도 합니다. 두 선언에 공통 필드를 복사해 넣으면 두 선언이 서로 달라질 수 있습니다.
별칭을 결합할 때 교집합 연산자 &를 배웠습니다. 형태에도 똑같이 적용됩니다. A & B는 "A의 모든 것 그리고 B의 모든 것을 가진다"는 뜻입니다.
type User = {name: string, age: number}
type Admin = User & {level: number}
-- 이제 Admin에는 name, age, level이 모두 필요합니다
local root: Admin = {name = "Root", age = 35, level = 9}TypeScript에서 인터페이스에 별도의 extends 키워드가 필요한 반면, Luau에서는 새로 필요한 것이 없습니다. 교집합이 이미 같은 역할을 합니다. 여러 부분을 연결할 수도 있습니다.
type Contact = {email: string}
type Developer = User & Contact & {yearsExperience: number}&와 |를 혼동하지 마세요. 합집합인 A | B는 두 형태 중 어느 하나를 뜻하지만, 교집합인 A & B는 둘 다 동시에 만족해야 합니다. 그리고 Admin에는 모든 User 필드가 있으므로, Admin 값은 User가 필요한 곳 어디에나 전달할 수 있습니다.
챌린지
쉬움직원 형태를 관리자 형태로 확장하세요.
type Employee = {name: string, department: string}와type Manager = Employee & {teamSize: number}를 작성하세요.local teamLead: Manager = {name = "Alice Johnson", department = "Engineering", teamSize = 8}를 만드세요.`{teamLead.name} manages {teamLead.teamSize} people`를 출력한 다음,teamLead.department를 출력하세요.
코드 실행을 누르세요. 출력에는 Alice Johnson manages 8 people와 Engineering이 표시됩니다.
직접 해보기
-- 1) type Employee를 정의한 다음 type Manager = Employee & {...}를 정의합니다
-- 2) local teamLead: Manager = {...}를 선언합니다
-- 3) 요약 줄을 출력한 다음 부서를 출력합니다
Luau 소개의 모든 레슨
4함수 다루기
매개변수와 반환값의 타입 지정익명 함수의 타입 지정아무것도 반환하지 않는 함수선택적 매개변수기본 매개변수 값불리언 기본값가변 인자 함수함수 타입 정의하기복습: 타입이 지정된 함수직접 연습해 보세요: 온라인 Luau 컴파일러