【发布时间】:2019-10-30 23:11:27
【问题描述】:
我有一个简单的服务,它接受端点并执行 HTTP_CALL。下面是这个:
export const updatePassword = (data: {
username: string;
password: string;
}): HttpResponse<string> => {
const { username, password } = data;
const options = {
method: httpMethod.POST,
url: endpoint.UPDATE_PASSWORD({
username,
password
})
};
return instance(options);
};
但我收到此错误:
Argument of type '{ username: string; password: string; }' is not assignable to parameter of type 'string'.
我不确定他的问题是什么,因为我在上面几行做完全相同的事情并且我没有收到错误。
如果您需要我要访问的端点,这里是:
UPDATE_PASSWORD: (username: string) => `${prefix}/${username}/password`,
此外,HttpRespone 是AxiosResponse Generic 的扩展,instance 是AxiosRequestConfig 的扩展,以及一些自定义泛型。
//更新。这是转换后的方式:
export const updatePassword = (data: { username: string }): HttpResponse<string> => {
const { username } = data;
const options = {
method: httpMethod.POST,
url: endpoint.UPDATE_PASSWORD(username)
};
return instance(options);
};
【问题讨论】:
-
您的
UPDATE_PASSWORD接受string类型的参数并且您正在传递对象。而是仅发送username或修改您的UPDATE_PASSWORD以接受object作为参数。 -
我按照您的建议将其转换为,请参阅说明,但现在我不确定,它会更新密码。你能解释清楚一点吗?
-
- 您也需要传递密码字段。修改
UPDATE_PASSWORD参数使其接受对象,或者您可以使其接受两个参数,一个用于用户名,另一个用于密码。
标签: javascript reactjs typescript generics axios