打字稿/角度2:属性缺少类型
发布时间:2020-12-17 07:25:19 所属栏目:安全 来源:网络整理
导读:我对Typescript仍然很陌生,并且难以绕过接口.据我所知,接口是类的描述或类的合同.它允许我定义一个类可以具有哪些属性以及它们是哪种类型.我尝试实现它,但总是得到这个错误: error TS2420: Class 'ResultPage' incorrectly implements interface 'ResultPag
我对Typescript仍然很陌生,并且难以绕过接口.据我所知,接口是类的描述或类的合同.它允许我定义一个类可以具有哪些属性以及它们是哪种类型.我尝试实现它,但总是得到这个错误:
error TS2420: Class 'ResultPage' incorrectly implements interface 'ResultPageInterface'. Property 'entries' is missing in type 'ResultPage'. 这是界面的代码 export interface ResultPageInterface { entries:Array<any>; page_number:number; page_size:number; total_entries:number; } export class ResultPage implements ResultPageInterface {} 在这里我想要使用它的类. 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; } }
您还需要将成员放在类中,以便它确实实现接口:
class ResultPage implements ResultPageInterface { public entries: Array<any>; public page_number: number; public page_size: number; public total_entries: number; constructor() { this.entries = []; } } 您还可以将成员设为私有并使用getter: class ResultPage implements ResultPageInterface { private _entries: Array<any>; private _page_number: number; private _page_size: number; private _total_entries: number; constructor() { this._entries = []; } public get entries() { return this._entries; } public get page_number() { return this._page_number; } public get page_size() { return this._page_size; } public get total_entries() { return this._total_entries; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |