typescript Vue 'v-bind="$attrs”'中断输入

gv8xihay  于 2023-02-17  发布在  TypeScript
关注(0)|答案(1)|浏览(156)

在使用fall through属性时,是否可以忽略类型? prop 可以成功地从组件A到B再到C。我在组件B中使用$attrs进行转发,并在组件C中声明 prop 。但是,组件B上始终存在类型错误,无法提供正确的 prop

<!-- Component A -->
<ComponentB :color="color" :width="23" />
<! -- Component B -->
<template>
  <div>hello</div>
  <!-- TypeError missing the following properties from type -->
  <ComponentC
    v-bind="$attrs"
  />
</template>
<! -- Component C -->
<script lang="ts" setup>
  const props = withDefaults(
    defineProps<{
      color: string
      width: number
    }>
  )
</script>
zkure5ic

zkure5ic1#

我能找到的最好的修复方法是在默认值部分包含所有转发的属性

const props = withDefaults(
  defineProps<{
    start: Date
    name: string
  }>(),
  {
    start: () => new Date(),
    name: undefined, // undefined works even without the '?' above
  }
)

相关问题