Typescript - 交叉点类型是否可以被视为该交叉点中包含的类型的子类型?

问题描述 投票:0回答:1

我有一个与 Typescript 中的 generic typesubtype 概念相关的问题。但花了一段时间阅读 Typescript 官方文档后我仍然没有找到答案。我的问题是:交叉点类型是否可以被视为创建交叉点的类型的子类型

我有以下类型:

type Dog = { color:string} type Cat = { gender:boolean} type Fish = { weigh: number} type Dog_Cat_Fish = Dog & Cat & Fish; type Dog_Cat = Dog & Cat;
我可以声明一下吗:

  • Dog_Cat_Fish
    Cat
     (1)
    的子类型
  • Dog_Cat_Fish
    Dog_Cat
     (2)
    的子类型
  • T & U
    T
     (3)
    的子类型
  • T & U & V
    T & V
     (4)
    的子类型
其中

T

V
U
 是*类型变量(泛型类型)。

感谢您考虑我的愚蠢问题。

typescript generics typescript-generics subtype intersection-types
1个回答
0
投票
您所有 4 个要点的答案都是肯定的。

即使您的类型的成员不兼容,情况也是如此

type Dog = { color:string } type Cat = { color:boolean } type Dog_Cat = Dog & Cat
这种类型的值不能存在,但它是 

Dog

Cat
 的子类型。它相当于
never
,但工具可能不会这样显示

© www.soinside.com 2019 - 2024. All rights reserved.