У меня есть модуль с несколькими экспортированными функциями. Объявление моего модуля выглядит так:
declare module 'my-module' {
export function getUserAvailablePaymentMethods(requestData: {
merchantId: number,
}): Promise<any>
// etc...
}
Это прекрасно работает. Хотя я бы также хотел экспортировать интерфейс из этого модуля с теми же функциями. Как это:
declare module 'my-module' {
export interface InjectedActions {
getUserAvailablePaymentMethods: (requestData: {
merchantId: number,
}) => Promise<any>
}
export function getUserAvailablePaymentMethods(requestData: {
merchantId: number,
}): Promise<any>
// etc...
}
Причина этого в том, что я иногда хочу набрать свои реактивные компоненты, а затем мне нужен интерфейс.
Проблема
Я не хочу писать все функции дважды, как в моем примере. Я пытался сделать это:
declare module 'my-module' {
export function getUserAvailablePaymentMethods(requestData: {
merchantId: number,
}): Promise<any>
export interface InjectedDevcodeActions {
getUserAvailablePaymentMethods: getUserAvailablePaymentMethods
}
// etc...
}
Но это не работает. Я получаю: "Не удается найти имя 'getUserAvailablePaymentMethods'.".
Можно ли достичь этого без написания функций дважды?