fix(compiler-sfc): support using declared interface in normal script with defineProps() (#4522)

fix #4423
This commit is contained in:
edison
2021-09-06 06:10:15 +08:00
committed by GitHub
parent 5594643d7b
commit 14d65181f1
3 changed files with 41 additions and 3 deletions

View File

@@ -784,6 +784,22 @@ const emit = defineEmits(['a', 'b'])
})
})
test('defineProps w/ exported interface in normal script', () => {
const { content, bindings } = compile(`
<script lang="ts">
export interface Props { x?: number }
</script>
<script setup lang="ts">
defineProps<Props>()
</script>
`)
assertCode(content)
expect(content).toMatch(`x: { type: Number, required: false }`)
expect(bindings).toStrictEqual({
x: BindingTypes.PROPS
})
})
test('defineProps w/ type alias', () => {
const { content, bindings } = compile(`
<script setup lang="ts">