ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
25 lines (24 loc) • 1.08 kB
TypeScript
import { MapKey, MapPredicate, ObjectPredicate, WithNullable } from './internals/types';
interface FindKey {
<T extends Map<any, any>>(map: WithNullable<T>, predicate?: MapPredicate<T>): MapKey<T> | undefined;
<T extends object, K extends keyof T = keyof T>(object: WithNullable<T>, predicate?: ObjectPredicate<T>): K | undefined;
}
/**
* 查找对象的键。
*
* @alias module:Object.findKey
* @since 1.13.0
* @param {Object | Map} obj 对象或 Map 对象
* @param {Function} [predicate] 迭代对象自身的可枚举属性(包含 `Symbol` 属性)调用的函数,返回 `Truthy` 表示要查找该值对应的键。
* @returns 如果对象存在要查找的值,返回该值的键,否则返回 `undefined`。
* @example
* const obj = { foo: 'bar', baz: 42 }
* findKey(obj, isNumber); // 'baz'
* findKey(obj, v => typeof v === 'bar'); // 'foo'
*
* const map = new Map([['foo', 'bar'], ['baz', 42]]);
* findKey(map, isNumber); // 'baz'
* findKey(map, v => typeof v === 'bar'); // 'foo'
*/
declare const findKey: FindKey;
export default findKey;