2016-10-18 3 views
1
私は、コンストラクタコードの次の行でエラーを取得しています

タイプ「ボイドが「いずれかが[]」

this.data = this.getRisks(); . 

エラーが

タイプ「無効」である型に代入されていないではありませんタイプ 'any []'に割り当てることができます。

誰かに私にそれをどのように割り当てるか教えてください。

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); 
    } 

} 

答えて

1

getRisks()は単にあなた場合は、this.data = []を設定することができ、それを呼び出すと、それはthis.data

constructor(private _riskService: RiskService) { 
    this.getRisks(); 
    this.loadRisks(); 
} 

を設定しますが、何も返さないので、データが利用可能になる前にそれを定義する必要があります。

関連する問題