Vue typescript 属性依赖于另一个属性

svmlkihl  于 2023-01-05  发布在  Vue.js
关注(0)|答案(2)|浏览(142)

使用<script setup lang="ts">,如何定义依赖于另一个属性的属性?
例如:如果存在另一个变量,我想要求一个变量。
我尝试执行defineProps<Props | PropsA>(),但是发生了一个错误。它说传递给defineProps()的**[@vue/compiler-sfc]类型参数必须是文本类型,或者是对接口或文本类型的引用。**

vhipe2zx

vhipe2zx1#

您可以使用以下语法:

const props = defineProps<
myRequiredPropName: Props | PropsA
myOptionalPropName?: Props | PropsA
>()

// in your script/setup: props.myRequiredPropName
// in your template: myRequiredPropName

不能有条件地要求属性并让类型脚本编译器捕获它。

q5lcpyga

q5lcpyga2#

参数声明类型不支持导入类型和复杂类型。
到目前为止,类型声明参数必须是下列参数之一,以确保正确的静态分析:

  • 类型文本
  • 对同一文件中的接口或类型文本的引用

但是您可以使用PropType实用程序:

<script lang="ts" setup>

  const props = defineProps({
       propName:{
          type: Object as PropType<Type1 | Type2>
      }

   });
</script>

相关问题