Как выставить типы, возвращаемые API, в машинописи - PullRequest
0 голосов
/ 25 октября 2019

Я создаю библиотеку машинописного текста, которая может вызывать веб-службы и возвращать данные. Он предоставляет 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?

1 Ответ

2 голосов
/ 25 октября 2019

Вы можете просто экспортировать все из каждого файла в index.ts, например:

export * from './api.ts';
export * from './IData1.ts';
export * from './IData2.ts';

Если вы планируете распространять это через npm, обязательно создайте и включите файлы декларации (.d.ts) в раздаче. А также установите поле types в вашем package.json. Подробнее об этом здесь .

Кроме того, у вас есть expose в вашем api.ts фрагменте здесь, это должно быть export Я предполагаю. : P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...