FactuGES_ERP/packages/rdx-utils/src/helpers/object-helper.ts

31 lines
990 B
TypeScript

/**
* Comprueba si un objeto posee una propiedad propia (no heredada) con la clave especificada.
*
* Esta función actúa como un wrapper tipado sobre `Object.hasOwn`, garantizando
* seguridad de tipos al restringir la clave (`key`) a las propiedades definidas
* en el tipo del objeto (`T`).
*
* @typeParam T - Tipo del objeto sobre el cual se realizará la comprobación.
*
* @param obj - Objeto en el que se desea verificar la existencia de la propiedad.
* @param key - Clave de la propiedad a comprobar; debe ser una clave válida de `T`.
*
* @returns `true` si el objeto tiene la propiedad como propia (no en su prototipo),
* `false` en caso contrario.
*
* @example
* ```ts
* const user = { name: "Alice", age: 30 };
*
* hasOwn(user, "name"); // true
* hasOwn(user, "toString"); // false
* ```
*/
export const hasOwn = <T extends object>(obj: T, key: keyof T): boolean => {
return Object.hasOwn(obj, key);
};
export const ObjectHelper = {
hasOwn,
};