我是新角色试图学习角度概念, 我要做的是Observable作为返回类型和返回主题,其中IEvent是一个定义如下的接口,
export interface IEvent{
id: number
name:string
date: Date
time: string
price: number
imageUrl:string
location?:{
address:string
city:string
country:string
}
onlineurl?:string
sessions:ISession[]
}
在另一个课程中,我有类似的代码,
const EVENTS : IEvent[] = [
{
id: 1,
name: 'Angular Connect',
date: new Date('9/26/2036'),
time: '10:00 am',
price: 599.99,
imageUrl: '/app/assets/images/angularconnect-shield.png',
location: {
address: '1057 DT',
city: 'London',
country: 'England'
},
......
}
并且在同一个类中有一个方法,如下面的getEvents(),
@Injectable()
export class EventService{
getEvents(): Observable<IEvent[]>{
let subject = new Subject<IEvent[]>()
setTimeout(() => { subject.next(EVENTS); subject.complete();},100)
return subject
}
在“return subject”语句中,获取编译器错误,Type Observable不能分配给Observable类型, 类型IEvent []不能分配给'R'。
我不明白为什么这个编译时错误,因为我知道Subject扩展了Observable所以返回主题对我有意义。 返回一个主题并返回类型为Observable,我做错了。