Аргумент типа '1' нельзя назначить параметру типа 'number[]'

Я использую Angular4 и в настоящее время начал изучать Услуги Angular4. Я все сделал правильно в своем классе dataServices, но все же я получаю эту ошибку в аргументеobserver.next(1);\

Пожалуйста, скажите мне, где я не прав.

Ошибка:

Argument of type '1' is not assignable to parameter of type 'number[]'

data.service.ts:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';


@Injectable()

export class DataService{
    data: Observable<Array<number>>;

constructor(){

}
getData(){
    this.data = new Observable(observer =>{
        setTimeout(() =>{
            observer.next(1);
        }, 1000);

        setTimeout(() =>{
            observer.next(2);
        }, 2000);

        setTimeout(() =>{
            observer.next(3);
        }, 3000);

        setTimeout(() =>{
            observer.next('Hello');
        }, 4000);

        setTimeout(() =>{
            observer.complete();
        }, 5000);
    });

    return this.data;
    }
}

2 ответа

Решение

Вы написали этот тип для data:

data: Observable<Array<number>>;

Но вы пытаетесь передать number, а не массив чисел. Так что вы можете просто изменить тип data:

data: Observable<number>;

this.data - это массив чисел, а не одно число. Вместо этого добавьте ваши значения в this.data.

Другие вопросы по тегам