简体   繁体   English

错误 TS2739:类型“{}”缺少类型中的以下属性

[英]error TS2739: Type '{}' is missing the following properties from type

managestation.ts管理站.ts

import { Component, OnInit } from '@angular/core';
import { Station } from 'src/app/_models/station';
import { StationService } from 'src/app/_services/station.service';
import { AddStaModalComponent } from 'src/app/modal/station/add-sta-modal/add-sta-modal.component';
import { EditStaModalComponent } from 'src/app/modal/station/edit-sta-modal/edit-sta-modal.component';
import { DataSharingService } from 'src/app/_services/data-sharing.service';
import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Component({
  selector: 'app-managestation',
  templateUrl: './managestation.component.html',
  styleUrls: ['./managestation.component.scss'],
})
export class ManagestationComponent implements OnInit {
  sta: Station;
  mySubscription: any;

  constructor(
    private dataSharing: DataSharingService,
    private staService: StationService,
    private activatedRoute: ActivatedRoute,
    private router: Router
  ) {}
  getStationsByOrg(id) {
      this.staService.getStationsByOrg(id)
      .then((allData) => {
        console.log(allData);
         this.sta = allData;
      });
    }
}

managestation.component.html管理站.component.html

<ion-content class="body">
  <ion-button expand="block" (click)="onAddStation()">Add Station
    <ion-icon name='add' slot="end"></ion-icon>
  </ion-button>
  <ion-list>
    <ion-item *ngFor="let s of sta">
      <ion-label>{{ s.name }}</ion-label>
      <ion-label>{{ s.orgId }}</ion-label>
      <ion-icon name='create' slot="end" (click)="onEditStation(s.id)"></ion-icon>
      <ion-icon name='trash' slot="end" (click)="onDeleteStation(s.id)"></ion-icon>
    </ion-item>
  </ion-list>
</ion-content>

station.ts站.ts

import { StationStatus } from './station-status.enum';

export class Station {
    id: number;
    name: string;
    orgId: number;
    address?: string;
    status: StationStatus;

    constructor(id?: number, name?: string, orgId?: number, address?: string, status?: StationStatus) {
        this.id = id;
        this.name = name;
        this.orgId = orgId;
        this.address = address;
        this.status = status;
    }
}

Terminal Error终端错误

ERROR in src/app/members/managestation/managestation.component.ts(66,10): error TS2739: Type '{}' is missing the following properties from type 'Station': id, name, orgId, status src/app/members/managestation/managestation.component.ts(66,10) 中的错误:错误 TS2739:“{}”类型缺少“Station”类型中的以下属性:id、name、orgId、status

Console Output控制台输出

 Array [ (4) […] ]
managestation.component.ts:65:16

(1) […]
​
0: (4) […]
​​
0: Object { id: 5, orgId: 2, name: "BitCo Gas Jos North", … }
​​
1: Object { id: 6, orgId: 2, name: "BitCo Gas Awolowo Road ", … }
​​
2: Object { id: 7, orgId: 2, name: "BitCo Gas Kano Central", … }
​​
3: Object { id: 8, orgId: 2, name: "BitCo Gas Efik", … }
​​
length: 4
​​
<prototype>: Array []
​
length: 1
​
<prototype>: Array []

Am getting the result in console.log but i can't use it in my html component file在 console.log 中得到结果,但我不能在我的 html 组件文件中使用它

Result结果

[
  [
    {
      "id": 9,
      "orgId": 3,
      "name": "Conap Corp Ikeja",
      "address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
      "status": "active"
    },
    {
      "id": 10,
      "orgId": 3,
      "name": "Conap Corp Ota",
      "address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
      "status": "active"
    },
    {
      "id": 11,
      "orgId": 3,
      "name": "Conap Corp Agbara",
      "address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
      "status": "active"
    },
    {
      "id": 12,
      "orgId": 3,
      "name": "Conap Corp Agbado",
      "address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
      "status": "active"
    }
  ]
]

You receive an empty object {} from the API call and the type of data you might set for the API call is Station .您从 API 调用收到一个空对象{} ,您可能为 API 调用设置的数据类型是Station Also, the sta type is Station : sta: Station;此外, sta类型是Station : sta: Station; . . You cannot set an empty object to sta .您不能将空对象设置为sta

Update:更新:

Looks like you are allData is an observable.看起来你是allData是一个可观察的。

you also have another error, looking at your code:您还有另一个错误,请查看您的代码:

export class Station {
    id: number;
    name: string;
    orgId: number;
    address?: string;
    status: StationStatus;

    constructor(id?: number, name?: string, orgId?: number, address?: string, status?: StationStatus) {
        this.id = id;
        this.name = name;
        this.orgId = orgId;
        this.address = address;
        this.status = status;
    }

look at the attributes and please, note that.查看属性,请注意。 The problem is that if you look at the declaration, you are saying that most of those attributes can't be null, but if you look at the constructor, you are saying the opposite, which one is correct?问题是,如果您查看声明,您会说这些属性中的大多数不能为空,但是如果您查看构造函数,您会说相反,哪个是正确的?

I added allData[0] and it working now我添加了allData[0]并且它现在可以工作了

  getStationsByOrg(id) {
      this.staService.getStationsByOrg(id)
      .then((allData) => {
        console.log(allData);
         this.sta = allData[0];
      });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 TS2739 类型“any[]”缺少来自“JSON”类型的以下属性:解析、字符串化、[Symbol.toStringTag] - TS2739 Type 'any[]' is missing the following properties from type 'JSON': parse, stringify, [Symbol.toStringTag] Typescript:TS2739:缺少属性 - Typescript: TS2739: properties are missing TS 错误:“事件”类型缺少“键盘事件”类型中的以下属性 - TS error: Type 'event' is missing the following properties from type 'keyboardevent' 错误:类型“{}”缺少类型中的以下属性 - Error: Type '{}' is missing the following properties from type TS2740 缺少 type、Typescript、NestJS 中的以下属性 - TS2740 is missing the following properties from type, Typescript, NestJS 错误 TS2740 类型 'DeepPartial<quiz> []' 缺少类型“问题”的以下属性:id、问题、hasId、save 和另外 4 个</quiz> - error TS2740 Type 'DeepPartial<Quiz>[]' is missing the following properties from type 'Question': id, question, hasId, save, and 4 more 类型“文档”缺少类型中的以下属性 - Type 'Document' is missing the following properties from type 类型缺少类型的以下属性? - Type is missing the following properties from type? 类型 &#39;Object&#39; 缺少类型 &#39;any[]&#39; 的以下属性:length、pop、push、concat 和 26 more.ts - Type 'Object' is missing the following properties from type 'any[]': length, pop, push, concat, and 26 more.ts 类型“{}”缺少类型“IResponseConfig”中的以下属性 - Type '{}' is missing the following properties from type 'IResponseConfig'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM