【发布时间】:2017-04-27 22:59:33
【问题描述】:
对于Observable<T> 类型的变量,我尝试分配一个Observable<S>,其中S 是T 的一部分,但令人惊讶的是编译期间没有分配错误。
很想开动脑筋来了解这种行为的原因。
// 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});
【问题讨论】:
-
有趣的是,如果你使用 typescript@next,它会被标记为错误。
标签: typescript rxjs rxjs5 typescript2.0