Optional
errorFactoryGeneric: string | ((key) => string | Error)Optional
errorFactoryOnGetter: string | ((key) => string | Error)interface Animal {
id: number;
name?: string;
}
const spot: Animal = {id: 36, name: 'Spot'};
const getSpotProp = genNakedPropOrCrash(spot);
getSpotProp('name') // 'Spot'
getSpotProp('id') // 36
const cow: Animal = {id: 36};
const getCowProp = genNakedPropOrCrash(cow);
getCowProp('name') // crashes with 'missing name'
// with custom error
const duck: Animal = {id: 36};
const getDuckProp = genNakedPropOrCrash(duck, key => `Custom error: ${key} is missing`);
getDuckProp('name') // crashes with 'Custom error: name is missing'
// or during usage
getDuckProp('name', 'duck is missing a name') // crashes with 'duck is missing a name'
It is a shorter alternative of
const o = opt(obj);
o.propOrCrash('fieldA')
o.propOrCrash('fieldB')
->
const g = genNakedPropOrCrash(obj);
g('fieldA')
g('fieldB')
Performance characteristics are expected to be similar.
Utility function for generating property getter for one specific object. Functionally similar to propOrCrash, but it has swapped arguments and only supports naked objects.