context 객체는 다음과 같은 타입입니다.
type Context = {
kind: string;
name: string | symbol;
access: {
get?(): unknown;
set?(value: unknown): void;
has?(value: unknown): boolean;
};
private?: boolean;
static?: boolean;
addInitializer?(initializer: () => void): void;
}
kind(데코레이터의 유형, ClassDecoratorContext라면 class, ClassMethodDecoratorContext라면 method), name(장식 대상의 이름), access(has, get, set 등의 접근자를 모아둔 객체), private(private 여부), static(static 여부) 속성이 있습니다. 데코레이터 유형에 따라 속성이 존재하지 않는 경우도 있습니다. 초기화할 때 실행되는 addInitializer라는 메서드도 있습니다. 이들을 활용해서 장식 대상의 정보를 가져올 수 있습니다.