preactjs / signals

Manage state with style in every framework
https://preactjs.com/blog/introducing-signals/
MIT License
3.81k stars 95 forks source link

Adjust ReadOnlySignal so we cant widen the type #587

Closed JoviDeCroock closed 3 months ago

JoviDeCroock commented 3 months ago

Avoid inheriting from signal in ReadonlySignal so we can't accidentally widen the type by doing const computed: Signal<any> = useComputed(() => {}), in widening this type we would lose the readonly aspect of the value property effectively making it a mutable signal.

Fixes https://github.com/preactjs/signals/issues/585

changeset-bot[bot] commented 3 months ago

đŸĻ‹ Changeset detected

Latest commit: 57ab3de3acdfb0f38705a979b9bfde09ce012c45

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package | Name | Type | | -------------------- | ----- | | @preact/signals-core | Minor |

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

netlify[bot] commented 3 months ago

Deploy Preview for preact-signals-demo ready!

Name Link
Latest commit 57ab3de3acdfb0f38705a979b9bfde09ce012c45
Latest deploy log https://app.netlify.com/sites/preact-signals-demo/deploys/66addf2f1a208e0008924c3d
Deploy Preview https://deploy-preview-587--preact-signals-demo.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

github-actions[bot] commented 3 months ago

Size Change: 0 B

Total Size: 83 kB

ℹī¸ View Unchanged | Filename | Size | | :--- | :---: | | `docs/dist/assets/bench.********.js` | 1.59 kB | | `docs/dist/assets/client.********.js` | 46.3 kB | | `docs/dist/assets/index.********.js` | 838 B | | `docs/dist/assets/jsxRuntime.module.********.js` | 284 B | | `docs/dist/assets/preact.module.********.js` | 4.03 kB | | `docs/dist/assets/signals-core.module.********.js` | 1.4 kB | | `docs/dist/assets/signals.module.********.js` | 2.02 kB | | `docs/dist/assets/style.********.js` | 21 B | | `docs/dist/assets/style.********.css` | 1.24 kB | | `docs/dist/basic-********.js` | 244 B | | `docs/dist/demos-********.js` | 3.45 kB | | `docs/dist/nesting-********.js` | 1.13 kB | | `docs/dist/react-********.js` | 242 B | | `packages/core/dist/signals-core.js` | 1.45 kB | | `packages/core/dist/signals-core.mjs` | 1.47 kB | | `packages/preact/dist/signals.js` | 1.27 kB | | `packages/preact/dist/signals.mjs` | 1.22 kB | | `packages/react-transform/dist/signals-*********.js` | 5.03 kB | | `packages/react-transform/dist/signals-transform.mjs` | 4.27 kB | | `packages/react-transform/dist/signals-transform.umd.js` | 5.15 kB | | `packages/react/dist/signals.js` | 188 B | | `packages/react/dist/signals.mjs` | 150 B |

compressed-size-action