Angular 4属性在构建对象类型上不存在

问题描述 投票:32回答:7

[我正在使用Angular构建项目,我使用angular-cli启动了该项目,当我尝试运行ng build --prod时,我一直收到此错误:

对象类型上不存在属性'描述'

产生此错误的代码如下:

export class AppComponent {
    product: Object = {};

    constructor(
        private store: StoreService,
        private request: RequestService,
    ) {
        this.product = this.request.getProduct(_id);
    }
}

<p>{{product.description}}</p>

我正在阅读有关此内容,并且错误是因为我正在使用类型定义将产品定义为Object,但是没有传递任何属性定义。

我知道我可以像定义数组一样定义接口,但是我做不到。我不知道是否定义错误,这就是我尝试过的方法:

export interface ProductInterface {
    id: Number;
    description: String;
    title: String;
}

product: Object<ProductInterface> = {};

但是它也给我错误。我需要怎么做才能避免这种情况?

angular typescript
7个回答
23
投票

第一个例子。在您的html中,您说的是产品具有属性描述(它不在Object类型上)


4
投票

首先,我只使用product: ProductInterface;,甚至不必初始化它。


4
投票

从我的情况..


0
投票

您必须在实现OnInit接口的控制器的OnInit方法中定义请求并定义一个新方法


0
投票

就我而言,在将我的属性设置为public


0
投票

从服务器请求数据时,使用any而不是Object是安全的,因为我们不知道将从服务器返回什么。因此,您无需typecheck


0
投票

如果该属性是动态的(在编译时未知),则可以使用

© www.soinside.com 2019 - 2024. All rights reserved.