条件类型在TypeScript中是如何工作的
我在TypeScript中遇到了条件类型,并且我在TypeScript中发现了许多关于其功能的模糊定义 以以下条件类型为例:条件类型在TypeScript中是如何工作的,typescript,Typescript,我在TypeScript中遇到了条件类型,并且我在TypeScript中发现了许多关于其功能的模糊定义 以以下条件类型为例: type NonNullable<T> = T extends null | undefined ? never : T let MyType : NonNullable<string | null>; type nonnull=T扩展null |未定义?从不:T 让MyType:不可为空; 是我在google上搜索TypeScript中的条
type NonNullable<T> = T extends null | undefined ? never : T
let MyType : NonNullable<string | null>;
type nonnull=T扩展null |未定义?从不:T
让MyType:不可为空;
是我在google上搜索TypeScript中的条件类型时的第一个结果
它定义了T扩展U?X:Y
条件类型如下:
在人类语言中,此条件类型如下所示:如果
T可分配给类型U,选择类型X;否则,选择
Y型
因此,将这个定义应用到我们的示例中,我可以说(string | null
)可分配给null
类型?答案是否定的,所以MyType
应该是(string | null
)哪个是错的
另一篇文章对它的定义如下:
使用条件类型可以筛选出联合的特定成员
类型
在此定义中,编译器检查联合类型T中的每个可能类型(称之为TT
),如果此类型(TT
)可分配给null
或undefined
编译器会在定义MyType
时过滤掉它们
以下是我的问题:
也许这有助于理解。单独查看联合类型
string | null
,可以将其视为不可为null |不可为null
,因此我们得到与string
相同的string