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

新手上路,请多包涵

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

类型 Object 上不存在属性“描述”

产生此错误的代码如下:

 export class AppComponent {
    product: Object = {};

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

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

我正在阅读一些关于此的内容,错误是因为我使用类型定义将产品定义为对象,但我没有传递任何属性定义。

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

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

product: Object<ProductInterface> = {};

但这也给了我错误。我需要做些什么来避免这种情况?

原文由 celsomtrindade 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

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

在你的第二个例子中。您最初将产品定义为空对象

product: ProductInterface = {};

缺少接口的必填字段。所以你可以去掉初始化,留下

product: ProductInterface;

同样正如其他人所指出的,您不需要 Object<> 语法

原文由 LLai 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进