我如何了解打字稿中未提及的规则?

时间:2019-06-18 22:21:02

标签: typescript

another question中,我了解到对于界面而言

interface Example {
  a: 'string';
  b: 'number';
}

身份

Example[a | b] = Example[a] | Example[b]

在打字稿生态系统中成立,这令人感到惊讶,因为它似乎在任何文档中都没有提及(至少我在任何地方都找不到它,如果有人愿意,我会很高兴的。给我看一些文档,提到它。)

如果真的没有在任何地方提到它,谁能告诉我,为什么打字稿中存在未提及的规则?那不是草率的吗?更有趣的是:打字稿还有其他潜规则?我在哪里可以认识他们?

2 个答案:

答案 0 :(得分:1)

文档不全面。如果是这样的话,它会长很多倍,而且没人会去读它。

但是在TypeScript存储库中,添加了某些功能的拉取请求通常会对该功能进行详细记录。不幸的是,没有人要完成将所有内容都放在一处的参考手册的维护工作,因此您必须进行一些挖掘。

此规则

Example['a' | 'b'] = Example['a'] | Example['b']

您必须找出引入了keyof和索引访问类型的版本-它位于roadmap page上。

您会看到针对该版本修复的主要拉取请求和问题的列表,其中一个是

在该PR中,您可以找到规则,其中之一说

  

否则,当K不是类型参数时,T [K]解析如下:

     
      
  • 如果K是联合类型K1 | K2 | ... | Kn,T [K]等于T [K1] | T [K2] | ... | T [Kn]
  •   

答案 1 :(得分:1)

我的建议是挂在打字稿上 https://gitter.im/Microsoft/TypeScript 许多常见的问题/解决方案/打字稿理论都张贴在这里,上面提到的文档并不是有针对性的。

我想坐在那里可以帮助您从其他人的问题和解决方案中快速学习。