目前我有一个定义了接口的服务变量。
interface Bike {
color: string;
stock: number;
wheels: number;
}
在我的班级中,我定义了变量的类型:
export class BikeService {
bikes: Array<Bike>;
bike: Bike;
...
现在我想从我的服务中取一辆自行车:
// Give it a return type of Bike so we have access to the interface
public getSpecificBike(i: number): Bike {
this.bike = this.bikes[i];
return this.bike;
}
当我在我的组件中使用此功能时:
export class DisplaySpecificBikeComponent {
_bikeService: BikeService;
bike: any; // This is where the problem starts
constructor(_bikeService: BikeService) {
this._bikeService = _bikeService;
this.bike = this._bikeService.getSpecificBike(1);
...
}
...
}
此时我唯一可以访问自行车界面的时间是服务功能,这是有道理的,因为我们已经明确表示getSpecificBike()函数的返回类型是Bike类型。 / p>
我很好奇是否有一种方法不需要我重新定义Component中的接口,以便我的Component变量可以访问接口而不仅仅是服务中的函数。
如果没有办法实现这一点:为什么变量&#34; bike&#34;在组件中继承函数值的接口?
而不是设置
bike: any;
有没有办法设置为
bike: Bike;
没有在两个地方(服务和组件)重新定义界面?
谢谢!