composeLens()
composeLens<
A
,B
,C
>(ab
,bc
):Lens
<A
,C
>
Compose two lenses together.
Given a lens A ⭢ B
and a lens B ⭢ C
, produces a lens A ⭢ C
.
Type Parameters
• A
• B
• C
Parameters
ab
Lens
<A
, B
>
The lens from A ⭢ B.
bc
Lens
<B
, C
>
The lens from B ⭢ C.
Returns
Lens
<A
, C
>
Remark
pure function
Example
const addressLens = lens(
(person: Person) => property(person)('address'),
(person) => (addr) => associateDeep(person)('address')(addr)
);
const cityLens = lens(
(address?: Address) => optionalProperty(address)('city'),
(address) => (city) => associateDeep(address)('city')(city)
);
const personCityLens = composeLens(addressLens, cityLens);