TS 2322 - 类型'{id:number。中缺少属性'id'

时间:2017-10-17 22:46:20

标签: typescript

Angular和TS新手。我创建了具有相同属性的模型,但我得到了错误,无法找到解决方案:

  

TS2322:输入'{id:number; model:string;盘子   deliveryDate:string;截止日期:字符串;客户:{fir ...'不是   可分配给'Car'类型。类型'{id:'中缺少属性'id':   数; model:string;盘子deliveryDate:string;最后期限:   串;客户:{fir ...'。汽车:汽车= [

我的档案:

//cars-list.component.ts

import { Car } from '../models/car';
.
.
.
cars : Car = [
{
  id: 1,
  model: 'Mazda Rx7',
  plate: 'GD2121E',
  deliveryDate: '21-04-2017',
  deadline: '05-05-2016',
  client: {
    firstName: 'Jan',
    surname: 'Kowalski'
  },
  cost: 300,
  isFullyDamaged: true
}, 
...

//car.ts
import {Client} from './client';
export interface Car {
  id: number;
  model: string;
  plate: string;
  deliveryDate: string;
  deadline: string;
  client: Client;
  cost: number;
  isFullyDamaged: boolean;
}

2 个答案:

答案 0 :(得分:5)

您正在尝试将对象数组分配给Car类型的变量。使变量成为Cars的数组。

cars : Car[] = [

答案 1 :(得分:1)

对于像我这样使用过的人:

var myObject = objects.filter(o => o.id === id)

通过find()替换它以返回一个对象而不是一个数组:

var myObject = objects.find(o => o.id === id)