typescript - 与其他类型相交的类型等于从不
问题描述
type TestC = "c"
type TestABC = ("a" | "b") & TestC; // vscode says type TestABC = never
我预计类型 TestABC 应该是 TestABC = "a" | "b" | “c”,但从不
我不知道为什么 TsetABC = 从不。
有任何想法吗?
解决方案
编译器知道不能用任何具体值实例化的两种基本类型的交集将被简化为never
. 因此 examplestring & number
被简化为never
,因为没有任何值可以同时是数字和字符串。
在您的情况下,您将联合"a" | "b"
与字符串文字类型相交"c"
。意味着属于这种类型的值可以是"a"
或者"b"
但同时必须是"c"
,这显然是不可能的。
正如您可能想要的评论中指出的那样,"a" | "b" | TestC
这"a" | "b" | "c"
意味着一个值可以属于 n 这种类型可以是"a"
or "b"
or or"c"