Typescript 无法创建行为主题
我无法创建Typescript 无法创建行为主题,typescript,angular6,Typescript,Angular6,我无法创建行为主题 我期待一个json,它应该映射到下面的Typescript类 export class GetDataAPI { 'some-data':string; constructor (public title:string, public description:string, public tags:Array<string>, public someData:stri
行为主题
我期待一个json
,它应该映射到下面的Typescript
类
export class GetDataAPI {
'some-data':string;
constructor (public title:string,
public description:string,
public tags:Array<string>,
public someData:string
){
this['some-data'] = someData;
}
}
当我尝试初始化BehaviorSubject
时,我得到编译错误this.dataSubject=newbehaviorsubject({})代码>
错误是错误TS2345:类型为“{}”的参数不能分配给类型为“GetDataAPI”的参数。
类型“{}”中缺少属性“some-data”。
我必须创建一个指定所有参数的对象,即
new BehaviorSubject<GetDataAPI>({'some-data':'',
'title':'',
'description':'',
'tags':[],
'someData':''});
newbehaviorsubject({'some-data':'',
“标题”:“,
“描述”:“,
“标记”:[],
“someData”:“});
try:this.dataSubject=newbehaviorsubject({'some-data':''})
如果GetDataAPI
是一个类,那么您所做的仍然是不正确的,因为主题的初始值不会是类实例;它将是一个匿名对象。所以我应该做新的行为主体(新的GetDataAPI(“”,,[],“”))
?我刚刚做了,它也可以工作,但我想你的建议比我之前做的更正确。如果它是一个类,你必须确保构造函数被调用。基本上,你不应该把类当作接口来对待。对不起,我现在有点困惑。如果newbehaviorsubject(newgetdataapi('',[],'')
不正确,请举例说明如何初始化GetDataAPI
是一个Classic,我应该在前面的注释前面加上“yes”前缀,因为您需要使用new GetDataAPI
等。抱歉把事情弄糊涂了。
new BehaviorSubject<GetDataAPI>({'some-data':'',
'title':'',
'description':'',
'tags':[],
'someData':''});