Skip to main content

lens()

lens<T, V>(getter, setter): Lens<T, V>

Focus on and manipulate a specific property or substructure within an object.

Type Parameters

T

V

Parameters

getter

LenseGet<T, V>

The lens get function to use.

setter

LenseSet<T, V>

The lens set function to use.

Returns

Lens<T, V>

Remark

pure function

Example

const nameLens = lens(
(person: Person) => person.name,
(person, name) => ({ ...person, name })
);

const name = nameLens.get(person);

const { get: getUsername, set: setUsername } = lens(
(user: User) => property(user)('username'),
(user, name) => associateDeep(user)('username')(name)
);

const username = getUsername(user);