Git Product home page Git Product logo

Comments (11)

Andarist avatar Andarist commented on September 27, 2024 2

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 { a: number } leaking from the first "chain" of instantiations into the second "chain".

I have a fix for both here: #59972 :)

from typescript.

Andarist avatar Andarist commented on September 27, 2024 1

Result2 is not correct. It leaks T and that shouldn't happen. It's the other result that is correct, you can double-check that on 5.4 by checking the types resolved based on the result of your custom forwardRef call and based on the results of "the same" inlined type (I copy-pasted its computed definition): TS playground

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

from typescript.

Andarist avatar Andarist commented on September 27, 2024

A reasonable self-isolated repro: TS playground

from typescript.

jakubmazanec avatar jakubmazanec commented on September 27, 2024

Huh, interesting. Thank you for the investigation.

from typescript.

Alavrgajesus avatar Alavrgajesus commented on September 27, 2024

`` ceb4951646b978c517240e7bf43517a53d969c25

from typescript.

RyanCavanaugh avatar RyanCavanaugh commented on September 27, 2024

We'd really need a much shorter repro to be able to prioritize this

from typescript.

jakubmazanec avatar jakubmazanec commented on September 27, 2024

Great job as usual, thank you @Andarist!

from typescript.

Alavrgajesus avatar Alavrgajesus commented on September 27, 2024

1

from typescript.

Alavrgajesus avatar Alavrgajesus commented on September 27, 2024

- [ ] 

from typescript.

Alavrgajesus avatar Alavrgajesus commented on September 27, 2024
Details

from typescript.

Alavrgajesus avatar Alavrgajesus commented on September 27, 2024

Vv

from typescript.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.