[Typescript] [RxJS]为什么返回部分类型的observable时没有类型错误?

时间:2017-04-27 22:59:34

标签: typescript rxjs rxjs5 typescript2.0

对于Observable<T>类型的变量,我尝试分配Observable<S>,其中ST的一部分,并惊讶于没有分配错误在编译期间。

愿意挑选你的大脑来了解这种行为的原因。

// RxJS 5.3.0
// TS 2.2.2

interface Super {
  a: number;
  b: number;
}

interface Subset {
  a: number;
}

type Maybe<T> = T | undefined;

// Both of the following produce errors
const super1: Super = {a: 1} as Subset;
const superMaybe: Maybe<Super> = { a: 1 } as Maybe<Subset>;

// But this doesn't error
const superObservable: Rx.Observable<Super> = Rx.Observable.of<Subset>({a: 1});

1 个答案:

答案 0 :(得分:0)

这实际上与RxJS无关。这是一个TypeScript问题,已在未来2.4版本中修复。这就是安装typescript@next时的原因。

请参阅:https://github.com/Microsoft/TypeScript/issues/14770