gpt4 book ai didi

javascript - 进行比较时对象可能为空错误 typescript

转载 作者:行者123 更新时间:2023-12-01 16:25:47 29 4
gpt4 key购买 nike

我有一个简单的排序:

dataCopy.sort((a: Data, b: Data) => {
if (a[label] === null || b[label] === null) return 0;
if (direction === "desc")
return a[label] > b[label] ? 1 : -1;
return 0;
});

“数据”类型是:

export type Data = {
[key: string]: string | number | null;
};

我检查 a[label] 和 b[label] 是否均为 null,但我仍然收到错误“Object is possibly 'null'.ts(2531)”。它似乎只发生在 > 和 < 运算符上。

最佳答案

它可能只是不够聪明,无法看到您已过牌。顺便说一句,您没有发布 label 的来源,但假设这不是问题所在,试试这个:

dataCopy.sort((a: Data, b: Data) => {
const aLabel = a[label];
const bLabel = b[label];
if (aLabel === null || bLabel === null) return 0;
if (direction === "desc")
return aLabel > bLabel ? 1 : -1;
return 0;
});

有时您必须将事情排除在外,以便 TypeScript 可以看到您已经检查了条件,例如 === null

关于javascript - 进行比较时对象可能为空错误 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61903375/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com