简体   繁体   English

Angular TypeScript错误:无法将类型“ void”分配给类型“ boolean”

[英]Angular TypeScript error: Type 'void' is not assignable to type 'boolean'

what is wrong with the following code. 以下代码有什么问题。 it complains that the void is not assignable to boolean for const invalidResult. 它抱怨不能将const invalidResult的void分配给boolean。

isSubmitDisabled(): boolean {

    const results: Result[] = this.getLFResults();

    const invalidResult: boolean = results.forEach(function(result) {
        if (result.indicators.length === 0) {
            return true;
        }
        return false;
    });

    return results.length === 0 || invalidResult;
    // return results.length === 0;
}

getLFResults(): Result[] {

    if (!this.logframe) {
        const results: Result[] = [];
        this.store.select(getCurrentLogFrameState)
            .map((logframe) => {
                this.logframe = logframe;
            })
            .catch((err) => {
                return results;
            });
        if (this.logframe !== null && this.logframe !== undefined) {
            return this.logframe.results;
        } else {
            return results;
        }
    }
}

The forEach method doesn't return a value, the signature of the method is: forEach方法不返回值, 该方法签名为:

forEach(callbackfn: (this: void, value: T, index: number, array: T[]) => void): void;

You probably want to use the every method which returns a boolean: 您可能想使用返回布尔值的every方法

results.every(function (result) {
    if (result.indicators.length === 0) {
        return true;
        }
    return false;
});

Or the some method : 一些方法

results.some(function (result) {
    if (result.indicators.length === 0) {
        return true;
    }
    return false;
});

Because Array.forEach does not return anything. 因为Array.forEach不返回任何内容。 You are probably looking for Array.some which will return a boolean if any of the items satisfy the confition: 您可能正在寻找Array.some ,如果任何一项满足配置条件,它将返回一个boolean

const invalidResult: boolean = results.some(function (result) {
    return result.indicators.length === 0;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何修复错误类型“void”不可分配给 angular 类型“boolean”? - how to fix the error Type 'void' is not assignable to type 'boolean' in angular? 打字稿错误:类型&#39;undefined []&#39;不能分配给&#39;void&#39;类型 - Typescript error: Type 'undefined[]' is not assignable to type 'void' 角度错误:类型“void”不可分配给类型“AbstractControl” - Angular Error : Type 'void' is not assignable to type 'AbstractControl' 输入“承诺” <boolean | void> &#39;不可分配给&#39;boolean&#39;类型 - Type 'Promise<boolean | void>' is not assignable to type 'boolean' 在 Angular 中出现错误:输入“布尔值”| 可观察的<boolean> ' 不可分配给类型 'boolean'</boolean> - Getting error in Angular: Type 'boolean | Observable<boolean>' is not assignable to type 'boolean' Angular - '(error: any) =&gt; void' 类型的参数不可分配给'() =&gt; void' 类型的参数 - Angular - Argument of type '(error: any) => void' is not assignable to parameter of type '() => void' Angular 7:类型“void[]”不可分配给类型 - Angular 7: Type 'void[]' is not assignable to type moment.updateLocale格式无法分配给angular 4打字稿中的&#39;void&#39;类型的参数 - moment.updateLocale formats not assignable to parameter of type 'void' in angular 4 typescript 角度承诺 <void> &#39;不可分配给类型 - Angular Promise<void>' is not assignable to type 打字稿:不可分配给键入错误 - Typescript: is not assignable to type error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM