Свойство y не существует для типа x при деконструкции опоры - PullRequest
0 голосов
/ 03 августа 2020

Я создал простой projectname.tsx файл, в котором я хочу разместить свои интерфейсы / типы:

export interface Movie {
  id: number;
  title: string;
  posterPath: string;
}

В другом компоненте я хочу использовать интерфейс Mov ie для определения prop в интерфейсе Mov ie:

const MovieOnDashboard = ({movie}: Movie) => {
  const imagePath = 'https://image.tmdb.org/t/p/w185/';
  return (
    <MovieContainer
      key={movie.id}>
      <img src={imagePath + movie.posterPath} alt='poster' />
    </MovieContainer>
  );
};

prop {movie} показывает ошибку:

Свойство mov ie 'не существует в типе Mov ie '.

Я использую деконструкцию опоры {movie}, потому что опора была передана вниз, что означает, что фактическая опора - movie.movie. Ошибка имеет смысл, потому что свойство movie не определено в интерфейсе mov ie.

Я не хочу определять объект mov ie в моем интерфейсе mov ie, так как же это сделать? Я требую, чтобы деконструированная опора имела тип mov ie?

1 Ответ

1 голос
/ 03 августа 2020

Как упомянул @Titian Cernicova-Dragomir, используйте

{movie}: { movie: Movie }

, что буквально похоже на

prop: { movie: Movie }, но вы деконструируете опору и получите только свойство movie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...