使用<script setup lang="ts">,如何定义依赖于另一个属性的属性?例如:如果存在另一个变量,我想要求一个变量。我尝试执行defineProps<Props | PropsA>(),但是发生了一个错误。它说传递给defineProps()的**[@vue/compiler-sfc]类型参数必须是文本类型,或者是对接口或文本类型的引用。**
<script setup lang="ts">
defineProps<Props | PropsA>()
vhipe2zx1#
您可以使用以下语法:
const props = defineProps< myRequiredPropName: Props | PropsA myOptionalPropName?: Props | PropsA >() // in your script/setup: props.myRequiredPropName // in your template: myRequiredPropName
不能有条件地要求属性并让类型脚本编译器捕获它。
q5lcpyga2#
参数声明类型不支持导入类型和复杂类型。到目前为止,类型声明参数必须是下列参数之一,以确保正确的静态分析:
但是您可以使用PropType实用程序:
PropType
<script lang="ts" setup> const props = defineProps({ propName:{ type: Object as PropType<Type1 | Type2> } }); </script>
2条答案
按热度按时间vhipe2zx1#
您可以使用以下语法:
不能有条件地要求属性并让类型脚本编译器捕获它。
q5lcpyga2#
参数声明类型不支持导入类型和复杂类型。
到目前为止,类型声明参数必须是下列参数之一,以确保正确的静态分析:
但是您可以使用
PropType
实用程序: