function splitProps(props, ...keys) { const descriptors = Object.getOwnPropertyDescriptors(props); const dKeys = Object.keys(descriptors); const split = (k) => { const clone = {}; for (let i = 0; i < k.length; i++) { const key = k[i]; if (descriptors[key]) { Object.defineProperty(clone, key, descriptors[key]); delete descriptors[key]; } } return clone; }; const fn = (key) => split(Array.isArray(key) ? key : dKeys.filter(key)); return keys.map(fn).concat(split(dKeys)); } export { splitProps };