예시 함수

export default class GeneralController {

    @OverrideCtx // 사용할 데코레이터
    public static async helloWorld(ctx: ApiContext, next: any) {
        ctx.body = "Hello World";

        //@ts-ignore // ApiContext 타입에도 check()를 넣어주면 필요 없어짐
        ctx.check(); // 파라미터 객체에 추가할 함수
    }

}

데코레이터

function OverrideCtx(target: any, name: string, descriptor: PropertyDescriptor) {

    const prevDesc = descriptor.value;
    descriptor.value = async function (ctx: any, next: any) {

        // Overrides //
        ctx.__proto__.check = function () {
            console.log('CHECK');
        }

        await prevDesc.call(this, ctx, next);
    }
}