-3
return (index === 0) ? undefined : {row: rows[index], index};

其中 row = ElementFinder 和 index = number

这个表达式的返回类型是什么?

4

1 回答 1

0

几乎任何现代 IDE 都会向您展示它,我不知道您到底想要实现什么,但是 this 的返回类型将是{row: ElementFinder, index: number} | undefined.

这里真的没什么好解释的。它是undefinedifindex === 0或包含index字段的对象(我们知道它是一个数字),你说row有 type ElementFinder,所以我假设rowshas type ElementFinder[]。因此,另一个选项是{row: ElementFinder, index: number}。所以有效的类型是这两个 - 的并集{row: ElementFinder, index: number} | undefined

需要记住一件事:type of rowis ElementFinder,但很有可能在运行时它实际上是undefined,因为没有检查是否row[index]实际分配了任何值。TypeScript 不能静态地确定这一点,所以如果你想超级安全,你必须手动进行检查。如果我们想要超级严格,基本上每个数组都必须是 type Array<T | undefined>,但我想不是这样,因为它真的会使其他一切复杂化。不过,这些只是我的猜测。

于 2020-05-24T16:15:25.693 回答