首页 > 解决方案 > “测量”类型上不存在属性“传感器”

问题描述

我正在开发一个简单的应用程序,它应该从 json-server 请求测量并将它们显示在表格中。在顶部,它们应该是一个选择输入,用于选择从测量列表中提取的特定传感器。

export interface Measurement {
    id: number;
    sensor: string;
    location: string;
    time: string;
    value: number;
}

为了提取传感器,我使用了一项服务。

constructor(private measurementService: MeasurementService) { 
    this.sensors$ = this.measurementService.measurements$.pipe(
      tap(x=> console.log('SensorService',x)),
      map(ms=> this.extractSensors(ms))
    );
  }
  extractSensors(measurements: Measurement[]): Sensor[]{
    var maxId = 0;
    const sensors: Sensor[] = [ {id:1, location:'abc', sensor: 'sensor'}];
    console.log('extract Sensors',measurements);
    measurements.forEach((m: Measurement) => 
      {
        console.log(m.location,m.sensor);//27
        if(sensors.findIndex(s => s.location==m.location &&s.sensor==m.sensor)<0){//28
          sensors.push({id: maxId++, location: m.location, sensor: m.sensor});//29
        }
      }
    );
    return sensors;
  }

这是我的 measurment.service 中的代码

private measurementsSubject = new BehaviorSubject<Measurement[]>([]);
measurements$ = this.measurementsSubject.asObservable();

但现在我总是收到以下错误:

src/app/_services/sensor.service.ts(27,23) 中的错误:错误 TS2339:“测量”类型上不存在属性“位置”。

src/app/_services/sensor.service.ts(27,34): error TS2339: Property 'sensor' does not exist on type 'Measurement'.
src/app/_services/sensor.service.ts(28,49): error TS2339: Property 'location' does not exist on type 'Measurement'.
src/app/_services/sensor.service.ts(28,73): error TS2339: Property 'sensor' does not exist on type 'Measurement'.
src/app/_services/sensor.service.ts(29,50): error TS2339: Property 'location' does not exist on type 'Measurement'.
src/app/_services/sensor.service.ts(29,70): error TS2339: Property 'sensor' does not exist on type 'Measurement'.

我四处搜寻并找到了问题,但没有一个完全符合我的问题。有谁知道这个问题的解决方案?

标签: angulartypescript

解决方案


推荐阅读