-
Notifications
You must be signed in to change notification settings - Fork 12.8k
React's ComponentProps type issues in TypeScript 5.6.2 #59937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
As we can see here, all 4 results are: type Result = Omit<any, "ref"> & {
className?: string | undefined;
as?: ElementType | undefined;
} & {
ref?: Ref<HTMLElement> | undefined;
} If we now switch this playground to 5.6.2 then we'll see one of those going rogue (the one that you assumed is correct): TS playground |
A reasonable self-isolated repro: TS playground |
Huh, interesting. Thank you for the investigation. |
We'd really need a much shorter repro to be able to prioritize this |
additional repro: function withP3<P>(p: P) {
const m =
<I,>(from: I) =>
<I2,>(from2: I2) => ({ ...from, ...from2, ...p });
return createTransform(m);
}
const addP3 = withP3({ a: 1 });
const addedSome3 = addP3({ b: '' });
const added3 = addedSome3({ c: true });
const addP3_other = withP3({ foo: 'bar' });
const addedSome3_other = addP3_other({ qwerty: 123 });
const added3_other = addedSome3_other({ bazinga: true }); We can see here I have a fix for both here: #59972 :) |
Great job as usual, thank you @Andarist! |
π Search Terms
react, forwardRef, component props, ComponentProps
π Version & Regression Information
β― Playground Link
https://www.typescriptlang.org/play/?jsx=4&ts=5.6.2#code/JYWwDg9gTgLgBAbwLACg5xgTzAUzgUQBscQcA7GAFWxwBpV0tc4BhCcCM8mABSgjABnemgw1W7SFwp8BggOrAYACwgBXGACUcAMxGNxbDtKo19cHdADuAQygATbTrg3BcAEaucAMWt3HuuZMeL5Qtg5O2mT2OFDeamQAxjDAnEHiTiIAvhb8IHAA5FA4NskFANyoqDoJyalkFn4RugA8lLRwPAB8ABQMcImSnNwAXHA9YPxCYzwdxTpjTm1dAJRwALxdcNqlMAB0O8kAchAxIitjE1OCM3AAZIjzAPyLrZRdWWub2yXJB78wE4xRD9YowNRQBqeQQ+JoBHR9UToQbGbguNwJADWZAgVgarjgoXC8KiMTitRSnBaWJxeI6NNxZC65hWlRQWSqKGCElRFEUKiJ-icsiEbTgOAAHjByPY3EQSNxqLgtut+kYpNwRQolKoNEt3vcQUiBoRXIIjjZSC84IIYFBgGQAOZs9DoVzWyhwAA+cASMR0Dpw9hdcCybNQgzItp5Gr5OsFzWc60aYSFukR6DFkul0TlxFIFCVeGTBUEYBsZAKvX66EmcjG6uGcYFcOF12W5nQ81eOhaAAlKABZAAy8oLMGZ-S+W2QxrBEIaZDUhEIIay53DXPElBwtuWGzgnuzMrcCBRsZg1odOliMabMA5oied5M4qlJ5fipoLQrmC6NbgZ9GxMLUWmA7h-2NMYuAAN1ifpoJwOCoE3bltEEZcYAARgPcCZHbYIIGcPCYH5ZQE3hLpyjgAB6GiMGUPBigwwh4GANwrBwYAHGoqxlEwOAAAMAHkQCUH8yEwDoil0KtBKeVA0N3TCACYDx3PczyGEwxkI4jtO4MiKKcLIqNo+iVCY5TWLgdiBmgYpkjGc971LOBoGAR0HRsQg4DrIQ4AAajgeY-KmPZUCAA
π» Code
I noticed that when using custom forwardRef function (I use it so my generic components are typed correctly), I get different results in these two situations:
π Actual behavior
Type
Result1
is wrong:and
Result2
is correct:π Expected behavior
Types
Result1
andResult2
are same:Additional information about the issue
No response
The text was updated successfully, but these errors were encountered: