Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在typescript 2中创建对象的实例_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 在typescript 2中创建对象的实例

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;

如何在TypeScript中创建新实例。显然,我没有匹配构造函数,但我看不出有什么问题

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;
}