看来你的
Person
Person = { name :: String, (address :: Address)? }
如果可能的话,我建议避免
null
,
undefined
// person :: Person
const person = {name: 'Franz', address: S.Nothing};
// address :: Maybe Address
const address = getAddress (response);
// person$ :: Person
const person$ = R.assoc ('address') (address) (person);
address
字段在本例中,您可以使用
S.maybe
:
// person :: Person
const person = {name: 'Franz'}
// address :: Maybe Address
const address = getAddress (response);
// person$ :: Person
const person$ = S.maybe (person)
(address => R.assoc ('address') (address) (person))
(address);
结果要么是
{name: 'Franz'}
{name: 'Franz', address: 'Frankfurter Allee 42'}
. 不过,正如我所提到的,
{name: 'Franz', address: S.Nothing}
{name: 'Franz', address: S.Just ('Frankfurter Allee 42')}
是这些人的更好的代表。