2016-11-26 71 views
0

我正在与角2的工作参数和我有奇怪的错误:错误TS2345:类型为“Object”的参数是不能分配给类型

error TS2345: Argument of type 'Object' is not assignable to parameter of type 

i命令行看来这:

[0] app/category-details.component.ts(40,39): error TS2345: Argument of type 'Object' is not assignable to parameter of type '{ CategoryID: number; }'. 
[0] Property 'CategoryID' is missing in type 'Object'. 
[0] app/category-details.component.ts(45,39): error TS2345: Argument of type 'Object' is not assignable to parameter of type '{ CategoryID: number; }'. 

这是代码:

export class CategoryDetailComponent implements OnInit { 

    @Input() public category: Object; 

    private view: Observable<GridDataResult>; 
    private skip: number = 0; 

    constructor(private service: ProductsService) { } 

    public ngOnInit(): void { 
     this.view = this.service; 

     this.service.queryForCategory(this.category, { skip: this.skip, take: 5 }); 
    } 

    protected pageChange({ skip, take }: PageChangeEvent): void { 
     this.skip = skip; 
     this.service.queryForCategory(this.category, { skip, take }); 
    } 
} 

这说明我这个错误在行:

this.service.queryForCategory(this.category, { skip: this.skip, take: 5 }); 

this.service.queryForCategory(this.category, { skip, take }); 

我该如何解决这个错误?

谢谢!

回答

0

服务方法this.service.queryForCategory(this.category, { skip, take });预计第一个参数的类型为{ CategoryID: number; },而您通过的this.category的注释为Object。 您可以创建类别界面,以便queryForCategory@Input() public category: ICategory;正在使用它。

// interface.ts 
export interface ICategory { 
    CategoryID: number; 
} 

// service declaration 
queryForCategory(category: ICategory, options) 


// input property annotation 
@Input() public category: ICategory; 
相关问题