Algún desarrollador ha escrito un método cuya estructura se da a continuación.
export function ClassMethodTracer(className: IMyClass, methodName: string): void { const targetClass: IMyClass = className; const targetMethod: string = methodName; const propertyName = `Custom/${targetClass.name}/${targetMethod}/tracing`; const newMethodName = `Custom${targetClass.name}${targetMethod}`; if (!targetClass.prototype[propertyName]) { targetClass[newMethodName] = targetClass[targetMethod] as IMethod; const transactionName = `Custom/${targetClass.name}/${targetMethod}`; targetClass[targetMethod] = function (...args): LooseObject { return newrelic.startBackgroundTransaction( transactionName, (): LooseObject => (targetClass[newMethodName](...args)) as LooseObject, /* line 12 */ ); }; targetClass.prototype[propertyName] = true; } } Recibo Unsafe call of an `any` typed value en la línea número 12. ¿Cómo puedo resolver este problema de pelusa (no quiero suprimirlo)?
En el código anterior, podemos ver que hay tres tipos más IMyClass , IMethod y LooseObject cuyas estructuras son las siguientes.
export interface IMyClass { new (name: string): any; prototype: { newMethod: IMethod; [key:string]: any; }; } export interface IMethod { (...args: any[]): LooseObject; } export interface LooseObject { [key: string]: any; }No quiero suprimir las advertencias y errores de pelusa y no puedo encontrar ninguna forma de resolver este problema de pelusa.