在another question中,我了解到对于界面而言
interface Example {
a: 'string';
b: 'number';
}
身份
Example[a | b] = Example[a] | Example[b]
在打字稿生态系统中成立,这令人感到惊讶,因为它似乎在任何文档中都没有提及(至少我在任何地方都找不到它,如果有人愿意,我会很高兴的。给我看一些文档,提到它。)
如果真的没有在任何地方提到它,谁能告诉我,为什么打字稿中存在未提及的规则?那不是草率的吗?更有趣的是:打字稿还有其他潜规则?我在哪里可以认识他们?
答案 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 许多常见的问题/解决方案/打字稿理论都张贴在这里,上面提到的文档并不是有针对性的。
我想坐在那里可以帮助您从其他人的问题和解决方案中快速学习。