Я создаю библиотеку машинописного текста, которая может вызывать веб-службы и возвращать данные. Он предоставляет API для вызова различных веб-сервисов. Каждый вызов API возвращает данные определенного типа. В моем основном модуле я экспортирую API.
Я не могу найти лучший способ выставить типы, возвращаемые API. Учитывая, что типы имеют подтипы и так далее, существует не менее 100 типов. Для удобства чтения и абстракции я поместил их в несколько файлов.
Я думал, что смогу поместить все типы в одно пространство имен, а затем просто открыть пространство имен. Я не мог понять, как экспортировать одно пространство имен, хотя в машинописи. Это заставило меня поверить, что есть другой способ решения этой проблемы, но я не уверен, что.
Пример:
// api.ts
export function getData(): IData;
export function getData2(): IData2;
// IData1.ts
export interface IData1 {
subData: ISubData1;
}
export interface ISubData1: {
value: string;
}
// IData2.ts
export interface IData2 {
subData: ISubData2;
}
export interface ISubData2: {
subSubData: ISubSubData2;
}
export interface ISubSubData2 {
value: string;
}
// index.ts
import * as api from "./api";
export {api};
// What is the best way to export the type interfaces so that the consumer of this library has type checking?