assignDefaults
assignDefaults
(defaults: object) => (base: object) => object
Or(defaults: map) => (base: map) => map
Assign a KeyedCollection over defaults.
const ab = { a: 1, b: 2 } const assignABDefaults = assignDefaults(ab) const abc = assignABDefaults({ a: 2, c: 3 }) console.log(abc) // is { a: 2, b: 2, c: 3 }
const ab = { a: 1, b: 2 } const assignABDefaults = assignDefaults(ab) const abc = assignABDefaults({ a: 2, c: 3 }) console.log(abc) // is { a: 2, b: 2, c: 3 }
const ab = { a: 1, b: 2 } const assignABDefaults = assignDefaults(ab) const abc = assignABDefaults({ a: 2, c: 3 }) console.log(abc) // is { a: 2, b: 2, c: 3 }
const ab = { a: 1, b: 2 } const assignABDefaults = assignDefaults(ab) const abc = assignABDefaults({ a: 2, c: 3 }) console.log(abc) // is { a: 2, b: 2, c: 3 }
One common case is to assign default options. Below, we write a function that greets someone. By default we greet "<Name>" with "How are you?"
const defaults = { name: '<Name>', message: 'How are you?', } const getOptsWithDefaults = assignDefaults(defaults) const greet = opts => { const { name, message } = getOptsWithDefaults(opts) console.log(`Hello ${name}. ${message}`) } greet({ name: 'Grace' }) // prints "Hello Grace. How are you?
type Options = { name: string message: string } const defaults = { name: '<Name>', message: 'How are you?', } const getOptsWithDefaults = assignDefaults(defaults) const greet = (opts: Partial<Options>) => { const { name, message } = getOptsWithDefaults(opts) console.log(`Hello ${name}. ${message}`) } greet({ name: 'Grace' }) // prints "Hello Grace. How are you?
const defaults = { name: '<Name>', message: 'How are you?', } const getOptsWithDefaults = assignDefaults(defaults) const greet = opts => { const { name, message } = getOptsWithDefaults(opts) console.log(`Hello ${name}. ${message}`) } greet({ name: 'Grace' }) // prints "Hello Grace. How are you?
type Options = { name: string message: string } const defaults = { name: '<Name>', message: 'How are you?', } const getOptsWithDefaults = assignDefaults(defaults) const greet = (opts: Partial<Options>) => { const { name, message } = getOptsWithDefaults(opts) console.log(`Hello ${name}. ${message}`) } greet({ name: 'Grace' }) // prints "Hello Grace. How are you?