memoWithOptions
All checks were successful
Lint / lint (push) Successful in 13s

This commit is contained in:
Julien Valverdé
2025-07-21 01:24:14 +02:00
parent 605c0f9d57
commit c9df6e7a88

View File

@@ -370,21 +370,21 @@ export const memo = <T extends Component<any, any, any>>(
Object.getPrototypeOf(self),
)
export const memoWithEquivalence: {
export const memoWithOptions: {
<T extends Component<any, any, any>>(
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>
memoOptions: Partial<Memoized.Options<Component.Props<T>>>
): (
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>
) => T & Memoized<Component.Props<T>>
<T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>,
memoOptions: Partial<Memoized.Options<Component.Props<T>>>,
): T & Memoized<Component.Props<T>>
} = Function.dual(2, <T extends Component<any, any, any>>(
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual: Equivalence.Equivalence<Component.Props<T>>,
memoOptions: Partial<Memoized.Options<Component.Props<T>>>,
): T & Memoized<Component.Props<T>> => Object.setPrototypeOf(
{ ...self, memo: true, memoOptions: { propsAreEqual } },
{ ...self, memo: true, memoOptions },
Object.getPrototypeOf(self),
))