fix(compiler-sfc): fix ref sugar rewrite for identifiers in ts casting expressions

fix #4254
This commit is contained in:
Evan You
2021-08-06 12:55:48 -04:00
parent 86d78d10e3
commit 865b84bfe8
3 changed files with 41 additions and 1 deletions

View File

@@ -281,6 +281,24 @@ describe('<script setup> ref sugar', () => {
expect(content).not.toMatch('.value')
})
// #4254
test('handle TS casting syntax', () => {
const { content } = compile(
`
<script setup lang="ts">
let n = $ref<number | undefined>()
console.log(n!)
console.log(n as number)
</script>`,
{
refSugar: true
}
)
assertCode(content)
expect(content).toMatch('console.log(n.value!)')
expect(content).toMatch('console.log(n.value as number)')
})
describe('errors', () => {
test('non-let $ref declaration', () => {
expect(() =>