setup(__props, { expose }) {
expose()
- let n = _ref<number | undefined>()
- console.log(n.value!)
- console.log(n.value as number)
+ let a = _ref(1)
+ console.log(a.value!)
+ console.log(a.value! + 1)
+ console.log(a.value as number)
+ console.log((a.value as number) + 1)
+ console.log(<number>a.value)
+ console.log(<number>a.value + 1)
+ console.log(a.value! + (a.value as number))
+ console.log(a.value! + <number>a.value)
+ console.log((a.value as number) + <number>a.value)
-return { n }
+return { a }
}
})"
const { content } = compile(
`
<script setup lang="ts">
- let n = $ref<number | undefined>()
- console.log(n!)
- console.log(n as number)
+ let a = $ref(1)
+ console.log(a!)
+ console.log(a! + 1)
+ console.log(a as number)
+ console.log((a as number) + 1)
+ console.log(<number>a)
+ console.log(<number>a + 1)
+ console.log(a! + (a as number))
+ console.log(a! + <number>a)
+ console.log((a as number) + <number>a)
</script>`,
{
refSugar: true
}
)
assertCode(content)
- expect(content).toMatch('console.log(n.value!)')
- expect(content).toMatch('console.log(n.value as number)')
+ expect(content).toMatch('console.log(a.value!)')
+ expect(content).toMatch('console.log(a.value as number)')
+ expect(content).toMatch('console.log(<number>a.value)')
})
describe('errors', () => {
parent &&
parent.type.startsWith('TS') &&
parent.type !== 'TSAsExpression' &&
- parent.type !== 'TSNonNullExpression'
+ parent.type !== 'TSNonNullExpression' &&
+ parent.type !== 'TSTypeAssertion'
) {
return this.skip()
}