繁体   English   中英

错字错误:角度5中的类型缺少属性数据

[英]Typo Error:property data missing in type in angular 5

我试图在interface.ts中创建接口。 data是Column内部的对象数组。 下面是我的界面代码:

 export class User { result: boolean; messages: string; Column=[]; data=[]; } export class Column { name:string; category:boolean; count:number; } export class data { name:string; category:string; } 

以下是服务中使用的代码。

 getData(): Promise<User> { return Promise.resolve( { result: true, messages: 'Maria','Column':[{ name:'ramu',category:'c',count:4, "data":[{"name":"", "category":"" }] }] } ); } 

但是我得到了类型错误。 我已附上屏幕截图,请检查。 下面是错误屏幕截图。 代码URL Stackblitz

在此处输入图片说明

试试看

  getData(): Promise<User> {
return Promise.resolve(
{ result: true, messages: 'Maria',
  'Column':[{   name:'ramu',category:'c',count:4}], 
 "data":[{ "name":"", "category":"" }]
});
}

尝试以下代码段。

import { Injectable } from '@angular/core';
import { Http, Headers, Response, URLSearchParams, RequestOptions } from '@angular/http';
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { User } from './interface';
import { Column } from './interface';

import 'rxjs/add/operator/map';

@Injectable()
export class DataService {

  userCookie: any;
  loginAlertMessage: string;
  constructor(private http: Http
  ) {
  }



  getData(): Promise<User> {
    return Promise.resolve(
      {
        result: true, messages: 'Maria',
        'Column': [{ name: 'ramu', category: 'c', count: 4 }],
        "data": [{ "name": "", "category": "" }]
      });
  }
}

演示

试试这个interface.ts

export class User {
  result: boolean;
  messages: string;
  Column=[];
}
export class Column {  
  name:string;
  category:boolean;
  count:number;
  data=[]; // data should be here in Column class
}
export class data {
  name:string;
  category:string;
}

数据服务

getData(): Promise<User> {
    return Promise.resolve(this.data);
}

工作演示

这里的其他一些答案是有效的。

但是我认为您应该只是将对象“类型断言”为所需的类型(前提是数据的格式与所需的格式正确。)...

getData(): Promise<User> {
    return Promise.resolve(
      {
        result: true, messages: 'Maria',
        'Column': [{ name: 'ramu', category: 'c', count: 4 }],
        "data": [{ "name": "", "category": "" }]
      } as User);
  }

即在对象末尾添加as User

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM