mirror of https://github.com/sveltejs/svelte
fix: strip typescript assertions before analysis (#10329)
* strip typescript assertions before analysis * add test * changeset * move ts handling from transform to before analysis * format * types * remove unwrap_ts_expression --------- Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>pull/10357/head
parent
2a31987da5
commit
bce4f3f01c
@ -0,0 +1,5 @@
|
||||
---
|
||||
"svelte": patch
|
||||
---
|
||||
|
||||
fix: bindings with typescript assertions
|
@ -1,6 +1,19 @@
|
||||
import { test } from '../../test';
|
||||
import { expect, vi } from 'vitest';
|
||||
|
||||
const log = vi.fn();
|
||||
|
||||
export default test({
|
||||
html: '1 2 <div></div> <input type="number"> <input type="number">',
|
||||
ssrHtml: '1 2 <div></div> <input type="number" value="1"> <input type="number" value="2">'
|
||||
html: '1 2 <div></div> <div></div> <input type="number"> <input type="number">',
|
||||
ssrHtml:
|
||||
'1 2 <div></div> <div></div> <input type="number" value="1"> <input type="number" value="2">',
|
||||
props: {
|
||||
log
|
||||
},
|
||||
before_test() {
|
||||
log.mockClear();
|
||||
},
|
||||
test() {
|
||||
expect(log).toHaveBeenCalledWith('DIV', 'DIV');
|
||||
}
|
||||
});
|
||||
|
@ -1,14 +1,21 @@
|
||||
<script lang="ts">
|
||||
let { log } = $props();
|
||||
|
||||
let count = $state(1) as number;
|
||||
let double = $derived(count as number * 2) as number;
|
||||
|
||||
let element = null;
|
||||
let element_with_state = $state(null);
|
||||
let with_state = $state({ foo: 1 });
|
||||
let without_state = { foo: 2 };
|
||||
|
||||
$effect(() => {
|
||||
log(element.tagName, element_with_state.tagName);
|
||||
})
|
||||
</script>
|
||||
|
||||
{count as number} {double as number}
|
||||
|
||||
<div bind:this={element as HTMLElement}></div>
|
||||
<div bind:this={element_with_state as HTMLElement}></div>
|
||||
<input type="number" bind:value={(with_state as { foo: number }).foo} />
|
||||
<input type="number" bind:value={(without_state as { foo: number }).foo as number} />
|
||||
|
Loading…
Reference in new issue