@Expose()
export class ActivityDTO implements IActivityDTO {
id: string;
name: string;
type: keyof typeof EnumActivityType;
}
keyof typeof
는 TypeScript에서 사용되는 두 가지 연산자의 조합입니다. 이 연산자들은 코드 내에서 유형과 관련된 정보를 추출하거나 사용하는 데 도움이 됩니다.
keyof
: 이 연산자는 인터페이스, 유니온 타입 등의 객체 유형의 속성 키(key)를 문자열 리터럴 유니온 타입으로 추출합니다. 즉, 객체의 프로퍼티 키를 타입으로 가져올 수 있게 해줍니다.
typeof
: 이 연산자는 값의 타입을 가져옵니다. 예를 들어, typeof someVariable
은 변수 someVariable
의 타입을 가져옵니다.
따라서 keyof typeof
는 다음과 같은 의미를 가집니다:
type EnumActivityTypeKeys = keyof typeof EnumActivityType;
이것은 EnumActivityType
객체의 속성 키를 문자열 리터럴 유니온 타입으로 추출합니다. 즉, EnumActivityType
객체의 프로퍼티 이름들을 EnumActivityTypeKeys
타입으로 가져옵니다.
따라서 주어진 코드에서 type
프로퍼티는 EnumActivityType
객체의 프로퍼티 키 중 하나를 가질 것이며, 이는 name
, value
, description
등과 같은 값일 것으로 예상됩니다.