Typescript 扩展对象并将其指定给其父对象
我不确定标题听起来是否正确。如果需要修改,请提出建议 我有一个名为Typescript 扩展对象并将其指定给其父对象,typescript,Typescript,我不确定标题听起来是否正确。如果需要修改,请提出建议 我有一个名为program export class Programme { id: string; imageUrl: string; title: string; price: number; subject: string; level: string; tutorId: string; click: number; constructor(level?: str
program
export class Programme {
id: string;
imageUrl: string;
title: string;
price: number;
subject: string;
level: string;
tutorId: string;
click: number;
constructor(level?: string) {
this.click = 0;
this.level = level ? level : "";
}
}
我还有另一个对象ProgrammeWrapper
export class ProgrammeWrapper extends Programme{
lesson: Lesson[];
tutor: User;
constructor(prog: Programme){
super();
}
}
这就是问题所在:
var programme = new Programme();//this is coming from database
var user = new User();
var lessons = new Lesson[];
var programmeWrap = new ProgrammeWrapper();
programmeWrap.tutor = user;
programmeWrap.lessons = lessons;
我如何分配课程?到programmeWrapper?编写代码的方式programmeWrapper是一个程序,不需要创建不同的程序实例 ProgrammeWrapper也是一个程序,ProgrammeWrapper上也提供了程序的所有属性 ProgrammeWrapper可以这样编写:
导出类程序包装扩展程序{
课程:第[]课;
导师:用户;
构造函数(级别?:字符串){
超级(级别);
}
}
并且可以这样使用:
var user=new user();
var课程=新课程[];
var programmeWrap=new ProgrammeWrapper();
programmeWrap.tutor=用户;
programmeWrap.lessons=课程;
programmeWrap.id='5';//计划财产可用
如果您只想拥有一个具有该接口的对象并对其进行访问,则可以执行以下操作:
接口程序{
id:字符串;
imageUrl:字符串;
标题:字符串;
价格:数量;
主题:字符串;
级别:字符串;
教程:字符串;
点击:数字;
}
类程序包装器{
课程:字符串[];
导师:弦;
建造商(公共工程:计划){
}
}
let program:program=null;//来自其他地方
让programmeWrapper=新的programmeWrapper(Program);
log(programmeWrapper.prog.id);
我认为您并不真正理解继承是什么。也许读一下吧。谢谢@toskv,但是我有来自数据库的程序,我怎么能把它放在程序包装器中呢?这取决于程序有什么行为吗?方法?或者它只是一个普通对象?如果它是一个普通对象,最简单的解决方案就是让Program作为接口,ProgrammeWrapper作为类属性。不,你不能,因为typescript中没有强制转换,只有类型断言。我将在一分钟后添加一个示例。我可以再问一件事吗,即使我已初始化,我也会收到一个类型错误。