我有一个与 Typescript 中的 generic type 和 subtype 概念相关的问题。但花了一段时间阅读 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
是*类型变量(泛型类型)。感谢您考虑我的愚蠢问题。
即使您的类型的成员不兼容,情况也是如此
type Dog = { color:string }
type Cat = { color:boolean }
type Dog_Cat = Dog & Cat
这种类型的值不能存在,但它是 Dog
和
Cat
的子类型。它相当于
never
,但工具可能不会这样显示