通用类型Observer <t>需要1种类型的参数

时间:2017-07-12 19:55:31

标签: angular typescript observable

我试着理解Angular 4中的Observable。 我正在观看有关它的视频,我想创建我的第一个Observable,但在我的IDE中出错:

  

通用类型观察者需要1种类型的参数

我的代码:

import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import { Observer } from 'rxjs/Observer';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})

export class HomeComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    const myObservable = Observable.create((observer: Observer) => {
        setTimeout(() => {
            observer.next('first package');
        }, 2000);
    });
  }

}

我想我应该添加这样的通用类型:Observable<any>,但在我看过作者的视频中不添加任何泛型并且它可以正常工作。 谁能解释我为什么?

1 个答案:

答案 0 :(得分:2)

您的错误正在告诉您该做什么。通用类型Observer需要1种类型的参数。您只需要传递用于Observer的数据类型。在这种情况下,它是一个字符串'first package'。因此,在<button type="button" class="button" id="btn"> <div class="like">Like</div> <div style="display: none" class="like">Liked</div> <div class="count" id="current"> 1 </div> <div style="display: none" class="count" id="clicked"> </div> </button> $('#btn').click(function() { $('#btn #clicked').html(parseInt($('#current').text()) + 1); $('#btn .like').toggle(); $('#btn .count').toggle(); }) 方法中,将观察者数据类型设置为如下字符串:

.create()