【问题标题】:Generic type Observer<T> requires 1 types argument(s)泛型类型 Observer<T> 需要 1 个类型参数
【发布时间】:2017-11-26 19:52:21
【问题描述】:

我尝试理解 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&lt;any&gt;,但是在我观看作者的视频中不要添加任何泛型并且它可以工作。 谁能解释一下为什么?

【问题讨论】:

  • 可能一直在使用非通用实现。你不是。也许他使用的是更旧的版本。你不是。也许。或者可能不是。和你现在的情况没什么关系。
  • 什么意思?我一步一步重复了每个作者的动作。
  • 他的意思是你和作者可能正在使用不同版本的库或编译器。我们没有办法确切地知道。如果视频超过 6 个月,我认为这很有可能。
  • 好的,伙计们。我想就是这样。感谢您的提示。对不起,我的英语错误。
  • 你的英语很好,不用担心。

标签: angular typescript observable


【解决方案1】:

你的错误告诉你该做什么。通用类型观察者需要 1 个类型参数。您只需要传递用于观察者的数据类型。在这种情况下,它是一个字符串“第一个包”。因此,在您的 .create() 方法中,将观察者数据类型设置为如下字符串:

observer: Observer&lt;string&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2017-06-05
    • 2017-10-23
    相关资源
    最近更新 更多