【发布时间】:2021-09-22 16:50:42
【问题描述】:
这是我的代码:
export function getExpertTitle(
experiences: Array<{
title?: string | null;
description?: string | null;
endDate?: Date | null;
}> | null
) {
const emptyExperience = {
title: null,
description: null,
endDate: null
};
let currentExperience = experiences && experiences[0];
// Here is were i start to have the error
// Object is possibly 'null' or 'undefined'.ts(2533)
for (let i = 0, l = experiences && experiences.length; i < (!isNullOrUndefined(l) && l); i++) {
if (isNullOrUndefined(experiences && experiences[i].endDate)) {
currentExperience = experiences && experiences[i];
} else if ((!isNullOrUndefined(currentExperience) && currentExperience.endDate.getTime()) > Date.now()) {
currentExperience = experiences && experiences[i];
}
}
所以,我想做的是比较 experiences 数组并使用 endDate 属性按日期对它们进行排序,我想设置 currentExperience 作为最新体验。此外,如果 endDate 属性为“null”,则体验仍在进行中,这使其成为默认的 currentExperience。
我在想 for 循环可能看起来像这样,但我仍然收到错误:
for (let i = 0, l = experiences.length; i < l; i++) {
if (isNullOrUndefined(experiences[i].endDate)){
currentExperience = experiences && experiences[i];
break;
}
else if (experiences[i].endDate?.getTime() > currentExperience.endDate.getTime()) {
currentExperience = experiences && experiences[i];
}
}
我还在努力解决这个问题,如果我找到解决方案,我会发布它。 同时,任何 cmet 都会受到赞赏。
【问题讨论】:
-
基于错误,特别是
ts(2533),并且您有类型定义,这应该是一个 Typescript 问题(而不是 Javascript)。我建议更改标签以匹配此内容。 -
谢谢!我会更新的。
标签: arrays typescript sorting null