typescript:什么是”裸类型参数” | 珊瑚贝

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”

在此处阅读有关条件类型分布的信息。

  • @NurbolAlpysbayev 是的,您是对的,顺序应该颠倒,固定,10 倍
  • 嗨@TitianCernicova-Dragomir!我对typescript完全陌生,所以请回答我愚蠢的问题。 <number | boolean> 部分在typescript术语中称为 union 吗?
  • @PenguinBlues 是的(不包括表示类型参数的 < 和 > )。 A | B 是一个并集,而 A & B 是一个交集。typescript手册包含所有信息。
  • 很遗憾官方文档没有提到元组技巧。 e??…
  • @TitianCernicova-Dragomir,这个定义似乎并不完全正确,因为当 Id 定义为 type Id<T> = T 时,Id< T > 算作裸类型参数。所以看起来定义必须包括的不仅仅是语法。
  • @MaxHeiber 我猜如果类型别名(在声明站点)与 T 发行版一样简单(在声明站点上)仍然有效,但这从文档中也不是很清楚 e???


来源:https://www.codenong.com/51651499/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9862.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?