【发布时间】:2021-12-28 02:22:25
【问题描述】:
我正在尝试将 Vue 3.2 <script setup> 标记与 TypeScript 一起使用。
我有一个简单的用例,我想在模板中显示用户 ID。
我的代码在技术上可以正常工作。它可以很好地显示用户 ID。
但是有两件奇怪的事情......
-
我定义了一个
user属性,类型为User,我从 Firebase SDK 导入。这可行,但我在User类型上收到错误消息:'User' only refers to a type, but is being used as a value here. ts(2693)。为什么会出现此错误以及如何解决? -
help docs 说我不需要
import { defineProps } from "vue";。但如果我不进行导入,我会收到'defineProps' is not defined错误。这令人困惑。当文档另有说明时,为什么我要强制导入它?
这是我的完整代码:
<template>
<div>Logged in as {{ user.uid }}</div>
</template>
<script setup lang="ts">
import { defineProps } from "vue"; //Docs say this is not needed, but it throws an error without it
import { User } from "firebase/auth";
defineProps({
user: {
type: User, //ERROR: 'User' only refers to a type, but is being used as a value here. ts(2693)
required: true,
},
});
</script>
【问题讨论】:
-
stackoverflow.com/a/64832307/909973
type: Object as PropType<User>,确保从 vue 导入PropType
标签: typescript firebase vue.js vuejs3 vue-composition-api