2017-11-18 100 views
2

問題:打字稿:鍵入「受衆」是不能分配給鍵入「布爾」

.filter(audience => audience) 

我使用VSCode,我知道爲什麼,因爲它是期待一個布爾值的投擲這個錯誤,我要回一個對象,但這是有效的Javascript,因爲我正在返回一個真值,所以引用將被強制爲真。我可以在配置中更改某些內容以使其正常工作嗎?我已經使它的工作:

.filter(audience => Boolean(audience)) 

但我寧願避免這種情況。

+0

您正在使用什麼版本的打字稿的?用我自己的測試,我沒有錯誤 –

+0

2.4.2。它實際上不在數組的過濾方法中。這來自rxjs中Observables的過濾方法。 – Christian

回答

2

我很驚訝你看到這個錯誤。但是如果你需要一個布爾值,truthy/falsy價值經常被轉換爲布爾這樣的:

.filter(audience => !!audience) 
0

有幾種不同的方式,你可以做一個測試。由於TypeScript可以幫助您編寫更好的代碼,它對接受的內容很挑剔(這是一件好事)。這裏有幾種不同的方式來告訴某個對象是一個布爾值。

我們可以將它轉換爲anyboolean可能工作太)

.filter(audience => <any>audience) 

正如弗蘭克提到我們可以使用雙!

.filter(audience => !!audience) 
+0

你說得對,我沒有考慮'null' –

相關問題