Typescript: what is a "naked type parameter"
请参阅 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types
Conditional types in which the checked type is a naked type parameter...
Google 没有帮助,或者答案是针对 C#,我不知道。在 Typescript 文档中也找不到该术语。从上下文中获取含义也很难......
顺便说一句,我知道什么是"类型参数"。但是"赤裸"是什么意思呢?
当他们在这里说裸露时,他们的意思是类型参数存在而没有被package在另一种类型中,(即,数组,或元组,或函数,或Promise或任何其他泛型类型)
例如:
1 2 | type NakedUsage< T > = T extends boolean ?"YES" :"NO" type WrappedUsage< T > = [T] extends [boolean] ?"YES" :"NO"; // wrapped in a tuple |
naked vs non nakes 很重要的原因是裸用法分布在联合上,这意味着条件类型应用于联合的每个成员,结果将是所有应用的联合
1 2 3 | type Distributed = NakedUsage<number | boolean > // = NakedUsage<number> | NakedUsage<boolean> = "NO" |"YES" type NotDistributed = WrappedUsage<number | boolean > //"NO" type NotDistributed2 = WrappedUsage<boolean > //"YES" |
在此处阅读有关条件类型分布的信息。