Type 'undefined' is not assignable to type 'Movie'

Cho em hỏi một chút ạ, cho em hỏi tại sao code của em lại bị Type
TS2345: Argument of type ‘Movie | undefined’ is not assignable to parameter of type ‘Movie’.
‘undefined’ is not assignable to type ‘Movie’.ạ và cách giải quyết như thế nào ạ.
Em xin cảm ơn

import { Component, OnInit, Input } from '@angular/core';
import { Movie } from '../../models/movie';
import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
import { MovieService } from '../movie.service';

@Component({
  selector: 'app-movie-detail',
  templateUrl: './movie-detail.component.html',
  styleUrls: ['./movie-detail.component.css']
})
export class MovieDetailComponent implements OnInit {
  @Input()
  movie: Movie | undefined;
  constructor(private route:ActivatedRoute,
    private movieService:MovieService,
    private location:Location) { }

  ngOnInit(): void {
    this.getMovieFromRoute()
  }
getMovieFromRoute():void{
const id = +Number(this.route.snapshot.paramMap.get('id'));
this.movieService.getMovieFromId(id).subscribe(movie=>this.movie=movie)
}
save():void{
  this.movieService.updateMovie(this.movie).subscribe(()=>this.goBack());
}
goBack():void{
  this.location.back();
}
}

vì hàm của bạn chỉ chấp nhận kiểu Movie mà không chấp nhận kiểu undefine, trong khi khai báo của bạn this.movie mang 1 trong 2 kiểu Movie hoặc undefine.

 movie: Movie | undefined;
6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?