UNPKG

@yookue/ts-lang-utils

Version:

Common lang utilities for typescript

18 lines 680 B
import { isPlain } from "./isPlain"; import { setProp } from "./setProp"; export function defaultProps(target, props) { var overrideNil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!target || !isPlain(target)) { return props; } if (!props || !isPlain(props)) { return target; } var attributes = {}; Object.entries(props).filter(function (item) { return !Object.prototype.hasOwnProperty.call(target, item[0]) || overrideNil && (target[item[0]] === undefined || target[item[0]] === null); }).forEach(function (item) { return setProp(attributes, item[0], item[1]); }); return Object.assign(target, attributes); }