Я хочу прочитать декорированные значения параметров из декорированного метода в угловых пользовательских декорациях

Ниже приведены мои функции декоратора в машинописи

export function URL(target: Object, propertyKey: string, parameterIndex: number) {
    let existingRequiredParameters: number[] = Reflect.getOwnMetadata(url, target, propertyKey) || [];
    existingRequiredParameters.push(parameterIndex);
    Reflect.defineMetadata(url, existingRequiredParameters, target, propertyKey);
}

export enum HttpMethodType {
    GET, POST, PUT
}



export function HttpMethod(type: HttpMethodType) {

    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
            let method = descriptor.value;
            descriptor.value = function(){

            //how do get the parameter that was decorated with @URL here in this code.
                    //let method = descriptor.value;
                    let urlParameters: number[] = Reflect.getOwnMetadata(url, target, propertyKey);

                    let urlParameterIndex;
                    if (!urlParameters || urlParameters.length === 0) {
                            throw new Error("Please have @URL annotation");
                    }
                    if (urlParameters.length > 1) {
                            throw new Error("Can not have multiple annotations for @req");
                    }
                    if (type === HttpMethodType.GET) {
                   //pass the parameter decorated with @url to http.get method         
                   let portResultsObservable = this.http.get(null, { withCredentials: true })

                    }
       // the arguments that i get is not matching the actual method that was decorated.
                    return method.apply(this, arguments);
            }

    }

}

Я хочу вызвать мой метод декоратор и декоратор параметров, как показано ниже. Я хочу получить доступ к значению параметра paramOne в функции декоратора HttpMethod, я попытался передать..args[]:any во внутреннюю функцию с помощью HttpMethod, но я не могу получить эти аргументы. Есть ли способ получить доступ к этим аргументам?

@HttpMethod(HttpMethodType.GET)
callingfunction(@URL paramOne:string){
   console.log("test");
}

0 ответов

Другие вопросы по тегам