Я создал этот интерфейс.
interface Option {
value: string|number;
label: string|number;
}
Я планирую создать переменную с именем options, которая допускает массив «Option» или одно значение, например строку.
У меня нет проблем с присвоением значений переменной.
const options: Array<Option|string> = [{value: 'a', label: 'A'}];
Но когда я пытаюсь использовать переменную, я получаю следующую ошибку:
const singleOption = options[0].value;
Свойство 'value' не существует для типа 'string |Опция».Свойство 'value' не существует для типа 'string'
Я попытался проверить, является ли значение объектом или строкой.
const singleOption = typeof options[0] !== 'string' ? options[0].value : options[0];
, а также с типомно я все еще получаю ту же ошибку.
const singleOption = (<Option>options[0]).value ? options[0].value : options[0];
Я провел небольшое исследование, но не нашел решения или обходного пути для этого сценария.