![](/img/trans.png)
[英]React - Operator '<' cannot be applied to types 'void' and '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.