打字稿:类型'受众'不能分配给' boolean'

时间:2017-11-18 02:06:16

标签: javascript typescript rxjs

问题:

.filter(audience => audience)

我正在使用VSCode而且我知道为什么它会抛出这个错误,因为它期待一个布尔值并且我正在返回一个对象,但这是有效的Javascript,因为我&#39 ; m返回truthy值,因此引用将被强制为true。我可以更改配置中的某些内容以使其正常工作吗?我已经完成了它的工作:

.filter(audience => Boolean(audience))

但我宁愿避免这种情况。

2 个答案:

答案 0 :(得分:2)

我很惊讶你看到了这个错误。但是如果你需要一个布尔值,truthy / falsy值通常转换为这样的布尔值:

.filter(audience => !!audience)

答案 1 :(得分:0)

您可以通过几种不同的方式进行测试。由于TypeScript可以帮助您编写更好的代码,因此它接受的内容很挑剔(这是一件好事)。这里有一些不同的方法可以告诉某个对象是布尔值。

我们可以将其转换为anyboolean也可能有用)

.filter(audience => <any>audience)

正如Frank提到的,我们可以使用双!

.filter(audience => !!audience)