import { keys } from 'funtool';
const obj = {
a: 1,
b: 2,
get c() { return 3; }
};
Object.defineProperty(obj, 'd', {
value: 4,
enumerable: false
});
const sym = Symbol('e');
obj[sym] = 5;
// 获取仅可枚举键(默认)
keys(obj); // ['a', 'b', 'c', Symbol(e)]
// 获取所有键,包括不可枚举
keys(obj, () => true); // ['a', 'b', 'c', 'd', Symbol(e)]
// 获取仅不可枚举键
keys(obj, (key, desc) => !desc.enumerable); // ['d']
// 获取仅Symbol键
keys(obj, (key) => typeof key === 'symbol'); // [Symbol(e)]