JHipster为什么要为每个Angular模型对象生成接口?
例如
export interface IStudent {
id?: number;
studentIdentifier?: string;
firstName?: string;
lastName?: string;
}
export class Student implements IStudent {
constructor(
public id?: number,
public studentIdentifier?: string,
public firstName?: string,
public lastName?: string,
) {}
}
答案 0 :(得分:4)
我找不到原始的讨论,但是据我了解,这是因为接口在TypeScript中的工作方式与Java中的稍有不同。它们不仅通过定义类的方法来描述类的外观,而且还应显示哪些字段。因此,您可以定义某处的JSON的外观。像POJO。或POTO(普通的TypeScript对象):)
通过示例,您可以这样做:
let student: IStudent = { id: 123, studentIdentifier: '...',...}
和TS将检查您提供的对象是否满足学生的定义结构。当您从API获取对象时,您就可以直接以这种方式映射JSON,因此两者之间没有类。另一方面,直接构建IStudent的对象时,使用类而不是接口更方便。由于它也满足IStudent的要求,因此您可以制作
let student: IStudent = new Student(123, '...', ..)
那是较短的。
您也可以依赖我的第一个代码片段(这是离子的代码,顺便说一句。将接口用作POJO / POTO)。仅在TS中使用类会导致不好的开发人员体验恕我直言。
希望能有所帮助