我有一个导出了多个功能的模块。我的模块声明如下:
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...
}
之所以这样做,是因为有时我需要键入我的react组件,然后需要一个接口。
问题
我不想像我在示例中那样两次编写所有函数。我尝试这样做:
declare module 'my-module' {
export function getUserAvailablePaymentMethods(requestData: {
merchantId: number,
}): Promise<any>
export interface InjectedDevcodeActions {
getUserAvailablePaymentMethods: getUserAvailablePaymentMethods
}
// etc...
}
但这不起作用。我得到:“找不到名称'getUserAvailablePaymentMethods'。”。
是否可以在不编写两次函数的情况下实现这一目标?
答案 0 :(得分:1)
值getUserAvailablePaymentMethods
不能直接用作类型。如果需要,请使用typeof
:
declare module 'my-module' {
export function getUserAvailablePaymentMethods(requestData: {
merchantId: number,
}): Promise<any>
export interface InjectedDevcodeActions {
getUserAvailablePaymentMethods: typeof getUserAvailablePaymentMethods
}
// etc...
}
This issue是为了获得更好的错误消息。