mirror of https://github.com/sveltejs/svelte
feat: fix accessors and support migration of accessors (#13456)
* feat: fix accessors and support migration of accessors * fix: exclude slots * fix: remove call to proxy for accessors props Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> * chore: add test for accessors * chore: fix lint --------- Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>pull/13485/head
parent
dfe0138e0d
commit
c716329806
@ -0,0 +1,5 @@
|
||||
---
|
||||
'svelte': patch
|
||||
---
|
||||
|
||||
feat: fix accessors and support migration of accessors
|
@ -0,0 +1,14 @@
|
||||
<script lang="ts">
|
||||
type $$Props = {
|
||||
test: string;
|
||||
}
|
||||
|
||||
export let count = 0;
|
||||
export let stuff;
|
||||
</script>
|
||||
|
||||
<button>
|
||||
<slot name="cool" />
|
||||
</button>
|
||||
|
||||
<svelte:options accessors immutable/>
|
@ -0,0 +1,29 @@
|
||||
<script lang="ts">
|
||||
|
||||
|
||||
interface Props {
|
||||
test: string;
|
||||
count?: number;
|
||||
stuff: any;
|
||||
cool?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
let {
|
||||
test,
|
||||
count = 0,
|
||||
stuff,
|
||||
cool
|
||||
}: Props = $props();
|
||||
|
||||
export {
|
||||
test,
|
||||
count,
|
||||
stuff,
|
||||
}
|
||||
</script>
|
||||
|
||||
<button>
|
||||
{@render cool?.()}
|
||||
</button>
|
||||
|
||||
<svelte:options immutable/>
|
@ -0,0 +1,15 @@
|
||||
import { ok, test } from '../../test';
|
||||
import { flushSync } from 'svelte';
|
||||
|
||||
export default test({
|
||||
html: `<p>0</p>`,
|
||||
|
||||
async test({ assert, target, instance }) {
|
||||
const p = target.querySelector('p');
|
||||
ok(p);
|
||||
flushSync(() => {
|
||||
instance.count++;
|
||||
});
|
||||
assert.equal(p.innerHTML, '1');
|
||||
}
|
||||
});
|
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
let { count=0 } = $props();
|
||||
|
||||
export {
|
||||
count
|
||||
}
|
||||
</script>
|
||||
|
||||
<p>{count}</p>
|
Loading…
Reference in new issue