/** ***************************************** * Created by edonet@163.com * Created on 2019-11-30 21:46:44 ***************************************** */ 'use strict'; /** ***************************************** * 加载依赖 ***************************************** */ import { Extend, O } from './d'; /** ***************************************** * 挑选属性 ***************************************** */ function pick(origin: T): T; function pick(origin: T, keys: P[]): Pick; function pick(target: T, origin: P, keys: Q[]): Extend>; function pick(target: O, origin?: unknown, keys?: unknown): unknown { // 重载函数 if (typeof keys === 'undefined') { return pick({}, target, origin as [] || Object.keys(target)); } // 拷贝属性 if (Array.isArray(keys)) { keys.forEach((key: string) => { target[key as keyof O] = (origin as O)[key as keyof O]; }); } // 返回结果 return target; } /** ***************************************** * 抛出接口 ***************************************** */ export { pick };