конфигами
export type IConfigFuncAbstract = (v: any) => boolean;
export type IConfigObjAbstract = {
[key: string]: IConfigFuncAbstract | IConfigItemAbstract;
};
export type IConfigItemAbstract = IConfigObjAbstract | IConfigFuncAbstract;
export interface IApiRouteConfig {
url?: string;
dynamicUrl?: (props: any) => string;
method?: string;
params?: IConfigItemAbstract;
}
export default function makeRequestWithScheme<P = IAnyObj, R = IAnyObj >(
queryScheme: IApiRouteConfig,
params?: P // хочу тут написать проверку типо такого as {[keyof typeof queryScheme.params]: any}
): Promise<R & ResponseError> {
return makeQuery(queryScheme, params)
.then(serverResponse => checkServerResponse(queryScheme, serverResponse))
.catch(error => {
throw error;
});
}
class wallet {
sendWithdrawal(shortName: string, type: ICurrencyProviderType): Promise<void> {
return makeRequestWithScheme(
apiRoutes.sendWithdrawal,
// хочу проверять вот эти парамсы изходя из обекта apiRoutes.sendWithdrawal.params
{
amount: state.amount,
address: state.outputAddresses.replace(/\s/g, ''),
shortName,
type,
}
)
}
}
Ссылка сломалась, сделай через сокращатель
Обсуждают сегодня