【发布时间】:2021-11-22 17:31:36
【问题描述】:
我正在使用 Vue 3 和 TS 4.4。我有一个用defineProps 定义其道具类型的组件。当我添加对defineEmits 的调用时,VS Code 开始告诉我我的props 变量在组件模板中不存在。这是源代码:
<script setup lang="ts">
import { defineProps, defineEmits, VueElement, defineComponent } from "vue";
const emit = defineEmits<{
"update:checked": boolean;
}>();
const props = defineProps<{
label?: VueElement | string;
checked?: boolean;
}>();
</script>
<template>
<label>
<input
type="checkbox"
:checked="props.checked"
@change="(event) => emit('update:checked', (event.target as any)?.checked)"
/>
{{ props.label }}
</label>
</template>
还有几个屏幕截图可以更好地展示我在 VS Code 中看到的内容。这是在添加defineEmits之后:
这是没有defineEmits:
为 props 和 emits 定义类型的正确方法是什么?
【问题讨论】:
标签: javascript typescript vue.js vuejs3