使用 @Input() 时出现 TypeScript 错误

TypeScript Error While Using @Input()

我正在尝试使用 Angular 4 开发应用程序。但是我在使用

时收到错误消息
@Input('inputProducts') products: Product[];

错误是

[tslint] In the class "ProductListComponent", the directive input property "products" should not be renamed.Please, consider the following use "@Input() products: string" (no-input-rename).

错误没有任何影响,我的应用程序运行正常,但很烦人,无法删除它。代码片段如下:

import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Product } from '../product-row/product.model';
@Component({
  selector: 'app-product-list',
  templateUrl: './product-list.component.html',
  styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
  @Input('inputProducts') products: Product[];
  @Output() selectedProduct: EventEmitter<Product>;
  constructor() {
    this.selectedProduct = new EventEmitter();
  }
  clickedProduct(p: Product): boolean {
    this.selectedProduct.emit(p);
    return false;
  }
  ngOnInit() {
  }
}

html部分

<app-product-list [inputProducts]="products"></app-product-list>

请指出正确的方向以消除此错误。

这是风格指南,no-input-rename 您应该设置为 false 的规则不会出现此类 tslint 错误。 no-input-rename 通常在您使用 Angular CLI 生成项目时设置为 true。转到您的 tslint 文件并使其值等于 false。应该类似于:"no-input-rename": false.

@Input() inputProducts: Product[]; 应该可以解决您的问题。

products: Product[];

@Input('inputProducts')
set productsFromInput(projects: Project[]) {
  this.products = products;
}