Я пытаюсь экспортировать много констант, которые потом смогу импортировать и отобразить как массив. Я не могу поместить их все в один объект и экспортировать их, потому что я использую дженерики (OptionInterface) и я могу sh сохранить проверки типов.
В настоящее время я экспортирую каждый объект как именованный экспортировать, а затем экспортировать все как массив. Проблема в том, что другой разработчик может не знать, что он должен добавить новый элемент в экспортируемый массив.
Пример:
//ElemSettings.tsx
export interface ElemProps<OptionInterface = any> {
title: string,
key: string,
options: OptionsInterface[]
export interface SpecialOption {
s1: string,
s2: number
}
//Elements.tsx - what I wish to export
export const elemOne: ElemProps {
title: 'element One',
key: elemOne'
options: [1,2,3]
}
export const elemTwo: ElemProps {
title: 'element Two',
key: elemTwo'
options: [1,2,3]
}
export const elemThree: ElemProps<SpecialOption> {
title: 'element Two',
key: elemTwo'
options: [{s1:'one',s2:1},{s1:'two',s2:2}]
}
//This is how I export now
export const elems: Array<ElemProps> =
[elemOne, elemTwo, elemThree]
//user.tsx
import { elems } from 'Elements';
const doSomething = () => {
elems.map(...)
}
Если я пытаюсь удалить экспортированный массив и просто импортировать все элементы, например:
import * as elems from 'Elements';
, а затем использовать его как в doSomething, я получаю сообщение об ошибке:
Property 'map' does not exist on type 'typeof import("Elements")'.
Любые идеи, как я могу добиться экспорта всех констант в виде массива, но сохранить а также печатать?