簡體   English   中英

Angular TypeScript錯誤:無法將類型“ void”分配給類型“ boolean”

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

以下代碼有什么問題。 它抱怨不能將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;
        }
    }
}

forEach方法不返回值, 該方法簽名為:

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

您可能想使用返回布爾值的every方法

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

一些方法

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

因為Array.forEach不返回任何內容。 您可能正在尋找Array.some ,如果任何一項滿足配置條件,它將返回一個boolean

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

暫無
暫無

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

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