🔎 搜索词
可选链类型错误
🕗 版本与回归信息
当前版本
⏯ Playground链接
- 无响应*
💻 代码
type Q1 = A?.B
type Q2 = A!.B
type Q3 = typeof A?.B
type Q4 = typeof A!.B
🙁 实际行为
错误的错误。
🙂 预期行为
Optional chains are not allowed in entity names.
或 Non-null assertions are not allowed in entity names.
关于问题的附加信息
像 type Q = A?.B
或 type Q = A!.B
这样的生产环境今天会产生一个相当糟糕的 , expected
类型错误。这可能是一个常见的错误 - 我们应该改进它。
3条答案
按热度按时间lztngnrs1#
这个错误应该至少更好,因为
?.
语法在流中的类型上是支持的。请注意,这不应该排除实际上支持?.
作为类型中的一个很好的简写,就像它在表达式中一样。这基本上由#45793跟踪,我们也确实应该考虑一下。pprl5pva2#
在类型空间中的可选链(optional chain)到底意味着什么?我的最佳猜测是,
A?.B
的计算结果将等于A["B"] | undefined
(忽略null
和undefined
如果它们是A
类型的部分)。k3bvogb13#
是的,类似于
NonNullable<A>["B"] | undefined
(尽管关于A
是否包含null
的信息丢失是有问题的,但在JS中它总是有点像这样)。