Возможно ли избавиться от undefined в интерфейсе?

Рейтинг: 0Ответов: 0Опубликовано: 09.06.2023

Пишу функцию которая переделывает массив в определенный вид. Выглядит следующим образом:

const createComboboxData = <
  T extends any[] | readonly any[] | undefined,
  V extends keyof T[number],
  L extends Exclude<keyof T[number], V>
>(
  arr: T,
  valueField: V,
  labelField: L
) => {
  const arrData: ComboBoxData[] = []

  if (!arr || arr.length === 0) return []

  arr.forEach((item) => {
    const value = item?.[valueField]
    const label = item?.[labelField]

    if (value && label) arrData.push({ value, label })
  })

  return arrData
}

При попытке передать массив, который может быть undefined возникает проблема в том, что два оставшихся параметра не отображаются (что логично), но тип массива известен.

Выглядит это так: введите сюда описание изображения

Соответственно, сам вопрос. Можно ли как-то в TS избавиться от undefined и оставить чисто тип массива?

Ответы

Ответов пока нет.