Ole*_*ann 10 typescript angular
我对Typescript仍然很陌生,并且难以绕过接口.据我所知,接口是类的描述或类的合同.它允许我定义一个类可以具有哪些属性以及它们是哪种类型.我尝试实现它,但总是得到这个错误:
error TS2420: Class 'ResultPage' incorrectly implements interface 'ResultPageInterface'.
Property 'entries' is missing in type 'ResultPage'.
Run Code Online (Sandbox Code Playgroud)
这是界面的代码
export interface ResultPageInterface {
entries:Array<any>;
page_number:number;
page_size:number;
total_entries:number;
}
export class ResultPage implements ResultPageInterface {}
Run Code Online (Sandbox Code Playgroud)
在这里我想要使用它的类.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您还需要将成员放入类中,以便它确实实现该接口:
class ResultPage implements ResultPageInterface {
public entries: Array<any>;
public page_number: number;
public page_size: number;
public total_entries: number;
constructor() {
this.entries = [];
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以将成员设为私有并使用 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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27923 次 |
| 最近记录: |