Skip to content

toDefaulted (Lodash 호환성)

스프레드 연산자나 Object.assign을 사용하세요

toDefaulted 함수는 깊은 복제와 복잡한 기본값 처리로 인해 느리게 동작해요.

대신 더 빠르고 현대적인 스프레드 연산자(...)나 Object.assign()을 사용하세요.

객체에 기본값들을 적용한 새로운 객체를 만들어요.

typescript
const defaulted = toDefaulted(object, ...sources);

레퍼런스

toDefaulted(object, ...sources)

대상 객체에 하나 이상의 소스 객체에서 기본값을 적용한 새로운 객체를 생성하고 싶을 때 toDefaulted를 사용하세요. undefined인 속성이나 Object.prototype에서 오는 속성들에만 기본값이 설정돼요.

typescript
import { toDefaulted } from 'es-toolkit/compat';

// 기본적인 기본값 설정
const user = { name: 'John' };
const defaults = { name: 'Anonymous', age: 25, role: 'user' };
toDefaulted(user, defaults);
// => { name: 'John', age: 25, role: 'user' }

// 여러 소스에서 기본값 적용
const config = { theme: 'dark' };
const defaults1 = { theme: 'light', lang: 'en' };
const defaults2 = { lang: 'ko', region: 'Asia' };
toDefaulted(config, defaults1, defaults2);
// => { theme: 'dark', lang: 'en', region: 'Asia' }

undefined 값만 기본값으로 대체하고, null 값은 유지해요.

typescript
import { toDefaulted } from 'es-toolkit/compat';

const data = {
  name: undefined,
  age: null,
  active: false,
};
const defaults = {
  name: 'Default',
  age: 18,
  active: true,
  role: 'user',
};

toDefaulted(data, defaults);
// => { name: 'Default', age: null, active: false, role: 'user' }

원본 객체는 변경되지 않고 새로운 객체가 반환돼요.

typescript
import { toDefaulted } from 'es-toolkit/compat';

const original = { a: 1 };
const result = toDefaulted(original, { a: 2, b: 3 });

console.log(original); // { a: 1 } (변경되지 않음)
console.log(result); // { a: 1, b: 3 } (새로운 객체)

파라미터

  • object (object): 기본값을 적용받을 대상 객체예요.
  • sources (object[]): 기본값을 제공하는 소스 객체들이에요. 왼쪽에서 오른쪽 순서로 적용돼요.

반환 값

(object): 기본값이 적용된 새로운 객체를 반환해요.

MIT 라이선스에 따라 배포됩니다.