Angular Typescript:检查作为参数传递的函数的类型

Angular Typescript:检查作为参数传递的函数的类型,angular,typescript,types,interface,rxjs,Angular,Typescript,Types,Interface,Rxjs,因此,我有以下想法:我想描述一个函数,它将某个服务提供的RxJs Observable作为第一个参数,并将OnNext函数处理程序传递给subscribe方法 import { Observable } from 'rxjs'; export interface OnNextHandler<T> { (value: T): void } export interface ServiceSubscriber<T> { (providedObservable: O

因此,我有以下想法:我想描述一个函数,它将某个服务提供的RxJs Observable作为第一个参数,并将OnNext函数处理程序传递给subscribe方法

import { Observable } from 'rxjs';

export interface OnNextHandler<T> {
  (value: T): void
}

export interface ServiceSubscriber<T> {
  (providedObservable: Observable<T>, onNext: OnNextHandler<T>): void
}

所以现在回调返回一些东西,而不是预期的什么都不返回。我在这里遗漏了什么?当回调函数签名错误时,我如何接收错误?谢谢。

对此有不同的解释

简单的回答是,规范被视为无效

“不关心返回类型”

而不是

“完全不返回值”


您应将报税表键入“从不”:

export interface ServiceSubscriber<T> {
  (providedObservable: Observable<T>, onNext: OnNextHandler<T>): never
}
导出接口服务订阅服务器{
(providedObservable:Observable,onNext:OnNextHandler):从不
}

我相信这应该行得通。

你能创建一个stackblitz并在这里分享吗
  ngOnInit() {
    const { active, archived } = this.notesService;
    this.subscribeTo(active, activeNotes => activeNotes); // pay attention here on the 2nd arg
    this.subscribeTo(archived, archivedNotes => archivedNotes); // and here as well
  }
export interface ServiceSubscriber<T> {
  (providedObservable: Observable<T>, onNext: OnNextHandler<T>): never
}