#typescript
#typescript
Вопрос:
Привет, в моем приложении stencil я создал компонент, который получает данные в виде массива, а также JSON.stringfied, как показано ниже:
<myComponent :data=[1,2,3,4] />
<myComponent :data="JSON.stringify([1,2,3,4])" />
в моем компоненте stencil он получает как [object Object], однако его следует читать как массив. Вот снимок части stenciljs @prop
@Prop() data: string | Array<Record<'type' | 'value' | 'percentage', string>>;
Пользователь может отправлять stringified (используя JSON.stringify, а также напрямую может отправлять массив компоненту.)
Я хочу объединить оба. но если я отправлю массив в качестве входных данных веб-компоненту, он будет получен как [object Object]
Комментарии:
1. Массивы в Javascript являются объектами. Это особый тип объектов. Я не знаком с пакетом stencil, поэтому я не знаю наверняка, что здесь происходит, но в этом определении типа
string | Array<Record<'type' | 'value' | 'percentage', string>>
говорится, чтоdata
это может быть только строка или массив определенного типа object (Record<'type' | 'value' | 'percentage', string>
) . Я думаю, что происходит то, что ваш массив чисел не соответствует этому определению, поэтому он преобразуется в строку. И поскольку массивы являются объектами, вы получаете строку”[object Object]”
.2. Массив <любой> даже не работает..
3. Можете ли вы опубликовать ссылку на демонстрационную версию (codesandbox, stackblitz и т. Д.) Или репозиторий?