我的 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 的全部意义在于静态类型,因此尝试将 indexOf
的返回值视为 bool 值违背了 TS 的本质.
此外,我不清楚 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)
关于javascript - 运算符 '>' 不能应用于 Angular 8 中的类型 'void' 和 'number',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58022482/