【问题标题】:Angular Object literal may only specify know properties and ... does not exist in typeAngular Object 字面量只能指定已知属性,并且 ... 类型中不存在
【发布时间】:2017-04-28 08:57:39
【问题描述】:

我开始使用 Angular 并遇到错误。

.../mocks.ts(9,4): 输入 '{"id": number; “名称”:字符串; “描述”:字符串; “库存”:数量; “价格”:数量; “featu ...”不能分配给类型“CarPart []。 对象字面量只能指定已知属性,而“CarPart”类型中不存在“featured”。

我的代码:

汽车零件.ts

export class CarPart {
    id: number;
    name: string;
    description: string;
    inStock: number;
    price: number;
    featured: boolean;
}

模拟.ts

import { CarPart } from './car-part';

export const CARPARTS: CarPart[] = [{
    "id": 1,
    "name": "Super Tires",
    "description": "These tires are the very best",
    "inStock": 5,
    "price": 299.99,
    "featured": false //Line 9
  }, 
  {
    "id": 2,
    "name": "Reinforced Shocks",
    "description": "Shocks made of kryptonite",
    "inStock": 4,
    "price": 500.50,
    "featured": false
  },
  {
    "id": 3,
    "name": "Padded Seats",
    "description": "Super soft seats for a smooth ride",
    "inStock": 0,
    "price": 333.33,
    "featured": true
  }];

汽车零件.component.ts

import { Component, OnInit } from '@angular/core';
import { CarPart } from './car-part';
import { CARPARTS } from './mock';

@Component({
  selector: 'car-parts',
  templateUrl: './car-parts.component.html',
  styleUrls: ['./car-parts.component.css']
})
export class CarPartsComponent implements OnInit {

  constructor() { }

  carParts: CarPart[];

  totalCarParts(){
    let sum = 0;

    for(let carPart of this.carParts){
        sum += carPart.inStock;
    }
    return sum;
  }

  ngOnInit() {
    this.carParts = CARPARTS;
  }

}

当我从 mock.ts 和 car-part.ts 中删除“featured”时,它很好,没有错误。如果我添加它或任何其他名称或类型,它将无法工作...... 有人可以解释一下吗?

【问题讨论】:

  • 在哪一行出现错误?你用的是什么ts版本?
  • 只是出于好奇,试试这个:“export const CARPARTS: Array”和/或“export const CARPARTS: Array。看看他们中的任何一个是否都能解决错误。我知道这可能不是您想要的理想情况,但可能会提示正在发生的事情。错误的初始部分“无法将等分配给(您的数组)”让我感到怀疑。除了从此经历检查所有版本等的痛苦(您是否使用旧的 CLI,所有这些)。
  • @Maximus Line 9 in mock.ts(在代码中标记)。我正在使用 TS 版本 ~2.2.0
  • @TimConsolazio 两者都试过了,但 Array 给出了同样的错误。并且 Array 给出了另一个错误:找不到名称“Any”。奇怪的是。没有“特色”,一切正常。当我尝试添加除前 5 个属性(id、name、descr、inStock 和 price)之外的另一个属性时,它会出错...

标签: angular


【解决方案1】:

我重新启动了 Angular CLI 服务器(Ctrl+C > ng serve)。 编译没有问题...

“您是否尝试过将其关闭再打开”的证据仍然有效。 感谢您花时间研究 Tim 和 Max 的问题

【讨论】:

  • 我不相信它对我也有用:| CLI 编译器有什么问题??????无论如何感谢人:D
猜你喜欢
  • 2021-02-18
  • 2021-09-27
  • 2017-08-10
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 2022-08-24
  • 1970-01-01
  • 2019-08-13
相关资源
最近更新 更多