Angular 4, Property 'XX' is missing in type '{xx, xx}'

Viewed 8906

I am new to this kind of type scripting. Here is my model class:

export class Project {
     constructor(
          public projectId: number,
          public description: string,
          public startDate: Date,
          public endDate: Date
     ) {}
     getDaysRemaining() {
          var result = this.endDate.valueOf() - Date.now().valueOf();
          result = Math.ceil(result / (1000 * 3600 * 24));
          return result < 0 ? 0 : result;
     }
}

And, below is my initializing, referred to Angular tutorial:

 let PROJECTS: Project[] = [
     { projectId: 1, description: "Sample", startDate: new Date("2016-12-12"), endDate: new Date("2017-1-13") },
     { projectId: 2, description: "Sample 2", startDate: new Date("2016-12-12"), endDate: new Date("2017-1-13") }
];

The model is expected to be used like this in template:

{{ project.getDaysRemaining() }}

But, I am getting the error:

Property 'getDaysRemaining' is missing in type '{ projectId: number; description: string; startDate: Date; endDate: Date; }'.

Why do I have to initialize the function in TypeScript? Or, am I missing something?

1 Answers
Related