Возможно ли избавиться от undefined в интерфейсе?
Пишу функцию которая переделывает массив в определенный вид. Выглядит следующим образом:
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
и оставить чисто тип массива?
Источник: Stack Overflow на русском