const memoizeKey = `$memoize$${key}`;
descriptor[fnKey!] = function (this: any, ...args: unknown[]) {
Object.defineProperty(this, memoizeKey, {
configurable: false,
enumerable: false,
writable: false,
value: fn.apply(this, args)
});
}
return this[memoizeKey];
};
}