簡體   English   中英

運算符 '>' 不能應用於 Angular 8 中的類型 'void' 和 'number'

[英]Operator '>' cannot be applied to types 'void' and 'number' in Angular 8

我的 typescript 文件中有以下代碼,但是當我編譯它時,它給了我類似的錯誤

運算符 '>' 不能應用於類型 'void' 和 'number'

謝謝..

這是我的代碼

this.languages.forEach((o: any, i: any) => {
                const control1 = new FormControl(this.UserSelectedLanguages.indexOf(o.id) > -1); // if first item set to true, else false
                (this.languageform.controls.selectedlang as FormArray).push(control1);
});

考慮到這一點,我突然想到 typescript 的全部意義在於 static 類型,因此嘗試將indexOf的返回視為 boolean 與此背道而馳。

此外,我不清楚indexOf首先將如何返回void UserSelectedLanguages是一個常規的 js 數組嗎?

我對 angular 或 typescript 不太熟悉,但它看起來像this.UserSelectedLanguages.indexOf(o.id)返回void ,你不能在 void 和數字之間進行大於比較。 如果是這種情況,您實際上不必將其與任何東西進行比較。 它的非空存在表明它在那里:

// this alone may resolve to true or false
!!this.UserSelectedLanguages.indexOf(o.id)

確保this.UserSelectedLanguages實際上是一個array ,因為它似乎不是。

此外,一個快速骯臟的解決方案是做這樣的事情。

const control1 = new FormControl(<number>this.UserSelectedLanguages.indexOf(o.id) > -1);

謝謝你的回答。。

我用這個得到了問題的解決方案..

我把this.UserSelectedLanguages.indexOf(o.id) !== -1而不是this.UserSelectedLanguages.indexOf(o.id) > -1和我的問題解決了..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM