Tapuscrit / Angulaire 2: la Propriété est manquant dans le type
Je suis encore assez nouveau pour Tapuscrit et ont de la difficulté à enveloppant ma tête autour d'interfaces. Comme je comprends, une interface est un type de description ou d'un contrat pour une classe. Il me permet de définir, les propriétés d'une classe peut avoir et de quel type ils sont. J'essaie de mettre en œuvre, mais toujours cette erreur:
error TS2420: Class 'ResultPage' incorrectly implements interface 'ResultPageInterface'.
Property 'entries' is missing in type 'ResultPage'.
Voici le code pour l'interface
export interface ResultPageInterface {
entries:Array<any>;
page_number:number;
page_size:number;
total_entries:number;
}
export class ResultPage implements ResultPageInterface {}
Et ici, la classe où je veux l'utiliser.
import { Injectable } from '@angular/core';
import { ResultPage } from '../interfaces/result-page.interface';
@Injectable()
export class SomeClass {
constructor() {}
buildPage(res:any): ResultPage {
let page:ResultPage = new ResultPage();
page.entries = res.data;
page.page_number = res.pagination.page_number;
page.page_size = res.pagination.page_size;
page.total_entries = res.pagination.total_entries;
return page;
}
}
OriginalL'auteur Ole Spaarmann | 2016-11-02
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de mettre les membres dans la classe en tant que bien de sorte qu'il sera en effet de mettre en œuvre l'interface:
Vous pouvez également les membres privés et d'utiliser les accesseurs:
OriginalL'auteur Nitzan Tomer
implements ResultPageInterface
vousResultPage
implémenteResultPageInterface
mais il ne fait pas.Il devrait être
OriginalL'auteur Günter Zöchbauer
Juste au cas où si vous faites des erreurs stupides. J'avais la même erreur aujourd'hui.
J'ai changé mon code de
dashboardData: StreamData = [];
àdashboardData: StreamData[] = [];
, qui a résolu le problème.OriginalL'auteur Sibeesh Venu