types icon indicating copy to clipboard operation
types copied to clipboard

Incorrect Type Inference with mergeDeepRight, mergeDeepLeft, mergeRight, mergeLeft when Merging T and Partial<T>

Open o-svetlichnyi opened this issue 1 year ago • 1 comments

Description:

After updating to the latest versions of ramda and @types/ramda, I encountered an issue with the type inference of the mergeDeepRight function in TypeScript. Specifically, when merging an object of type T with a Partial<T>, the resulting type is not correctly inferred as T. Instead, properties are being inferred as unknown, leading to type errors.

This behavior did not occur in the previous versions ([email protected] and @types/[email protected]), where the types were correctly inferred, and the merge operation worked without any type assertions or errors.

Affected Versions:

    "@types/ramda": "^0.30.2",
    "ramda": "^0.30.1",
    "typescript": "^5.5.4"

Reproduction: https://stackblitz.com/edit/vitejs-vite-xsspwg?file=index.ts

o-svetlichnyi avatar Oct 21 '24 10:10 o-svetlichnyi

I think the relevant change is this one: https://github.com/ramda/types/pull/129 I had the exact same problem

perrin4869 avatar Aug 19 '25 03:08 perrin4869