Не полный ответ, но:
Это произошло из-за того, что у вас нет прямой проверки на null / undefined и TS еще не настолько умен, чтобы идентифицировать это сам.
У вас есть варианты:
1. Более подробный, но более безопасный:
Используйте проверку как здесь:
(value: number[] | null) => {
if (value ==null && value.length > 0) value[0];
};
или с печатными надписями как здесь:
(value: number[] | null) => {
if (!isnull(value) && value.length > 0) value[0];
};
function isnull(value: any): value is null {
return value == null;
}
2. Вариант для уверенных людей:
Скажите TS, что: Я уверен, просто сделайте это и используйте! нотации. Как здесь:
(value: number[] | null) => {
if (value?.length ?? 0 > 0) value![0];
};
Надеюсь, это поможет