Fix
All checks were successful
Lint / lint (push) Successful in 11s

This commit is contained in:
Julien Valverdé
2025-07-12 02:20:53 +02:00
parent e812175177
commit 0a5dac5f34
2 changed files with 6 additions and 3 deletions

View File

@@ -90,13 +90,15 @@ export interface Memoized<P> {
export const memo: {
<T extends Component<any, any, any>>(
propsAreEqual?: Equivalence.Equivalence<Component.Props<T>>
): (self: T) => T & Memoized<Component.Props<T>>
): (
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>
) => T & Memoized<Component.Props<T>>
<T extends Component<any, any, any>>(
self: T,
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual?: Equivalence.Equivalence<Component.Props<T>>,
): T & Memoized<Component.Props<T>>
} = Function.dual(2, <T extends Component<any, any, any>>(
self: T,
self: ExcludeKeys<T, keyof Memoized<Component.Props<T>>>,
propsAreEqual?: Equivalence.Equivalence<Component.Props<T>>,
): T & Memoized<Component.Props<T>> => Object.assign(
Object.create(Object.getPrototypeOf(self)),

View File

@@ -113,3 +113,4 @@ export const Todo = Component.make(function* Todo(props: TodoProps) {
})
const MemoizedTodo = Component.memo(Todo)
const MemoizedTodo2 = Component.memo(MemoizedTodo)