Type 'void' is not assignable to type 'any[]'
18,940
Since getRisks()
doesn't return anything, simply call it and it will set this.data
constructor(private _riskService: RiskService) {
this.getRisks();
this.loadRisks();
}
You can set this.data = []
if you need it to be defined before data is available.
Author by
Tom
Updated on August 02, 2022Comments
-
Tom almost 2 years
I am getting error at following line of the constructor code
this.data = this.getRisks(); .
The error is
Type 'void' is not assignable to type 'any[]'.
Could somebody tell me how do i assign it .
import { Component, OnInit } from '@angular/core'; import { Risk } from './risk'; import { RiskService } from './risk.service'; import { GridModule, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid'; @Component({ moduleId: module.id, selector: 'rm-risks', templateUrl: '/app/risk-list.component.html', providers: [RiskService] }) export class RiskListComponent implements OnInit { private gridView: GridDataResult; private data: any[]; private pageSize: number = 50; private skip: number = 0; title = 'Risk List'; risks: Risk[]; constructor(private _riskService: RiskService) { this.data = this.getRisks(); this.loadRisks(); } protected pageChange(event: PageChangeEvent): void { this.skip = event.skip; this.loadRisks(); } private loadRisks(): void { this.gridView = { data: this.data.slice(this.skip, this.skip + this.pageSize), total: this.data.length }; } getRisks(): void { this._riskService.getRisks().then(risks => this.risks = risks); } ngOnInit(): void { this.getRisks(); } };
risk.service.ts
import { Injectable } from '@angular/core'; import { Risk } from './risk'; import { Risks } from './mock-risk'; import { Http, Response } from '@angular/http'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/from'; @Injectable() export class RiskService { getRisks(): Promise<Risk[]> { return Promise.resolve(Risks); } }