feat(core): make signals interoperable #60132
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello,
I am opening this PR to suggest making Angular signals interoperable with other signal libraries by implementing what I suggested in this ticket of the TC39 signals proposal.
This PR contains an implementation of my suggestion. This is a work in progress. As mentioned in the above ticket, it would be good to receive feedback from different signal libraries authors, so this PR may evolve as feedback is received.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
The following tests (and many similar tests) currently fail:
It is also related to #50189
What is the new behavior?
The above tests succeed.
Does this PR introduce a breaking change?
This PR can break code that directly depends on
@angular/core/primitives/signalsbecause of changes in the data types.Other information
Note that the content of the
interop_lib.tsfile in this PR is directly copied from this ticket as a temporary solution. It should ideally come from an independent npm package that provides the interoperability layer.