typescript - 打字稿:什么是“裸类型参数”
问题描述
检查类型是裸类型参数的条件类型...
谷歌没有帮助,或者答案是 C#,我不知道。在 Typescript 文档中也找不到该术语。从上下文中获取含义也很难......
顺便说一句,我确实知道“类型参数”是什么。但“赤裸”是什么意思?
解决方案
当他们在这里说裸体时,他们的意思是类型参数存在而没有被包装在另一种类型中(即,数组、元组、函数、promise 或任何其他泛型类型)
前任:
type NakedUsage<T> = T extends boolean ? "YES" : "NO"
type WrappedUsage<T> = [T] extends [boolean] ? "YES" : "NO"; // wrapped in a tuple
裸与非裸重要的原因是裸用法分布在联合上,这意味着条件类型适用于联合的每个成员,结果将是所有应用的联合
type Distributed = NakedUsage<number | boolean > // = NakedUsage<number> | NakedUsage<boolean> = "NO" | "YES"
type NotDistributed = WrappedUsage<number | boolean > // "NO"
type NotDistributed2 = WrappedUsage<boolean > // "YES"
在此处阅读有关条件类型分布的信息。
推荐阅读
- c++ - 在类中声明一个数组。C++
- sql-server - 使用 VS Code mssql 扩展时找不到命令“extension.addObjectExplorer”
- angular - Jasmine 测试失败预期未定义等于
- r - 在包含矩阵的嵌套列表中应用函数
- sql - sqlContext.sql("query") 中支持的 SQL 函数列表:有,match_recognize.etc
- node.js - 如何在 Node 中使用 Textmate 语法标记代码片段
- vespa - 是否有任何 Grafana 仪表板可用于 Vespa 指标?
- asp.net - 如果用户从电子邮件链接访问我的 asp.net 站点,下载后保存的 PDF 文件已损坏,但手动登录后未损坏?
- c# - 使用正则表达式从许多文件中获取特定数据
- oracle - 传递一个集合 id