javascript - 运算符 '>' 不能应用于 Angular 8 中的类型 'void' 和 'number'

标签 javascript angular typescript

我的 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 首先如何返回 voidUserSelectedLanguages 是常规 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/

相关文章:

javascript - Chrome 打印对话框在取消或打印对话框之前不会执行单独的 JavaScript 函数

node.js - ng 服务 : Cannot find module 'tapable'

javascript - 使用 ES6 + Flow 代替 TypeScript

javascript - this.id对应变量

javascript - 在 div 下方对齐 anchor 标记

jquery - Angular 2 和 jQuery

angular - 使用 ngserve 时在 Angular 类中编译时出错

typescript - 如果不单独使用,nestjs/swagger 是否支持查询参数的文档?

reactjs - 类型 'splice' 上不存在属性 'T'

javascript - Vue.js 不使用 TextTrackCueList 更新 DOM