Javascript 在typescript 2中创建对象的实例
如何在TypeScript中创建新实例。显然,我没有匹配构造函数,但我看不出有什么问题Javascript 在typescript 2中创建对象的实例,javascript,angular,typescript,Javascript,Angular,Typescript,如何在TypeScript中创建新实例。显然,我没有匹配构造函数,但我看不出有什么问题 export class User implements IUser { public id: number; public username: string; public firstname: string; public lastname: string; public birthday: string; public email: string;
export class User implements IUser {
public id: number;
public username: string;
public firstname: string;
public lastname: string;
public birthday: string;
public email: string;
public constructor(iUser: IUser)
{
this.id = iUser.id;
this.username = iUser.username;
this.firstname = iUser.firstname;
this.lastname = iUser.lastname;
this.birthday = iUser.birthday;
this.email = iUser.email;
}
}
interface IUser {
id?: number;
username: string;
firstname: string;
lastname: string;
birthday: string;
email: string;
}
和扩展用户的学生类
export class Student extends User implements IStudent, IUser {
public indeks: string;
public studyProgram: StudyProgram;
public constructor(iUser: IUser, iStudent: IStudent)
{
super(iUser);
this.indeks = iStudent.indeks;
this.studyProgram = iStudent.studyProgram;
}
}
interface IStudent {
indeks: string;
studyProgram: StudyProgram;
}
所以,当我尝试创建student的新实例时,我得到了这个错误
这是StudyProgram
class
export class StudyProgram implements StudyProgramInterface {
public id: number;
public name: string;
public duration: number;
public courseType: string;
public studentList: Array<Student>;
public constructor(studyProgramCfg: StudyProgramInterface) {
this.id = studyProgramCfg.id;
this.name = studyProgramCfg.name;
this.duration = studyProgramCfg.duration;
this.courseType = studyProgramCfg.courseType;
}
}
interface StudyProgramInterface {
id?: number;
name: string;
duration: number;
courseType: string;
}
导出类StudyProgram实现StudyProgram接口{
公众id:号码;
公共名称:字符串;
公众持续时间:数字;
公共课程类型:字符串;
公共学生名单:数组;
公共构造函数(studyProgramCfg:studyprogramiinterface){
this.id=studyProgramCfg.id;
this.name=studyProgramCfg.name;
this.duration=studyProgramCfg.duration;
this.courseType=studyProgramCfg.courseType;
}
}
接口研究程序接口{
id?:编号;
名称:字符串;
持续时间:数字;
课程类型:字符串;
}
学生类构造函数需要两个对象(一个实现IStudent,另一个实现IUser),您只传递一个。我认为您正在寻找的构造器是:
public constructor(student: IUser & IStudent) {
super(student);
this.indeks = student.indeks;
this.studyProgram = student.studyProgram;
}
您可以在此处找到有关交叉点类型的更多信息:
public constructor(student: IUser & IStudent) {
super(student);
this.indeks = student.indeks;
this.studyProgram = student.studyProgram;
}