31 lines
990 B
TypeScript
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,
|
|
};
|