道具可能未定义

Props might be undefined

我有一个小的 Vue 功能组件,它从它的父级获取 prop:

export default defineComponent({
  name: 'ExpandedMovieInformation',
  props: {
    movie: {
      type: Object as PropType<Movie>,
    },
  },
  setup(props, { emit }) {
    const { movie } = props;
  },
});
</script>

<template>
  <div>
    <div class='overlay'>
      <h1>{{ movie.title }}</h1>
      <span class='release-date'>{{ movie.release_date }}</span>
      <p>{{ movie.overview }}</p>
    </div>
  </div>
</template>

在父组件中启动组件:

<ExpandedMovieInformation
  :movie="currentMovie" />

代码可以编译,但在模板中我收到警告:

如何正确地将类型分配给 prop,使其不可能未定义?

在制作 ExpandedMovieInformation 列表组件时提供电影参数的事实如下:

<ExpandedMovieInformation :move="currentMovie" />

并不意味着每个人都会这样做,有人可能会在没有那个的情况下制作组件 属性:

<ExpandedMovieInformation />

因此 属性 可能未定义。
要解决此问题,您可能需要为 属性 添加默认值,方法如下:

props: {
    movie: {
      type: Object as PropType<Movie>,
      default: {}
    },
  },