Аргумент типа '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.