2016-07-22 270 views
1

我正尝试使用Angular和离子建立电影目录。电影类包含ID,标题,图像和情节。错误TS1112:不能将一个类成员声明为可选

在第一页中,应用程序仅显示标题标题&图像。它省略了阴谋。

电影类

export class Movie{ 
    id: number; 
    title: string; 
    img: string; 
    plot?: string; 
} 

在主打字稿文件,我分配在电影细节如下

export class MainPage implements OnInit{ 

    movies: Movie[]; 
    getMovies(){ 
     this.movies = [{id: 1, title: 'test', img: 'img1'}] 
    } 
    ngOnInit(){ 
     this.getMovies(); 
    } 
} 

但是,这将返回以下错误

错误TS1112:A类成员不能被声明为可选。它指的是“情节”变量。

我该如何实现我的目标?还有其他的选择吗?

在此先感谢您的帮助!

回答

2

如果电影仅仅是定义数据结构,并且不包含任何实现代码,然后只需将其更改为一个接口:

interface Movie{ 
    id: number; 
    title: string; 
    img: string; 
    plot?: string; 
} 

或者类可以只定义情节没有?但是,在这种情况下,您需要在getMoves方法中将plot设置为null:

class Movie{ 
    id: number; 
    title: string; 
    img: string; 
    plot: string; 
} 

class MainPage { 

    movies: Movie[]; 
    getMovies(){ 
     this.movies = [{id: 1, title: 'test', img: 'img1', plot: null}] 
    } 
    ngOnInit(){ 
     this.getMovies(); 
    } 
} 
+0

您可以添加更多以完成答案。 – Jai

+0

如果我需要实施某些方法会怎样?如何处理? –

+0

已添加附加信息 –