使用此界面
export interface OperationStream<In, Out, Context> {
接受此声明
const : OperationStream<never, boolean, ConnectionContext & { userId: string }> = ...
这一切编译的很好。
这当然不是。对我来说很有道理。
const exactOp: OperationStream<never, boolean, void> = registerOp
那为什么在世界上编译以下内容?
const exactOp: OperationStream<never, boolean, never> = registerOp
PS。 这是官方文档所说的:
never类型是每种类型的子类型,并且可以分配给每种类型;但是,任何类型都不是(永远不会除外的)永不的子类型或可分配给它的子类型。甚至任何东西都不能分配给永不。