gpt4 book ai didi

javascript - 此表达式不可调用类型 'String' 没有调用签名

转载 作者:行者123 更新时间:2023-12-04 15:29:58 36 4
gpt4 key购买 nike

在我的 typescript 函数中,当我将类型注释设置为字符串时,我收到错误“此表达式不可调用类型'字符串'没有调用签名。”如下面的代码所示。

function thing<T>(setThingState: string ){

return Axios.request({
method: 'get',
url:'https://jsonplaceholder.typicode.com/todos/',//'https://jsonplaceholder.typicode.com/todos/'
}).subscribe(
response => {
console.log(response);
setThingState({ message: response.status });
},
error => {
console.log(error);
setThingState({ message: '404' });
}
);

}

但是,如果我将类型设置为任何,那么我没有问题。如下面的代码所示。我仍然对 TypeScript 束手无策,因此我们将不胜感激任何反馈。
function thing<T>(setThingState: any ){

return Axios.request({
method: 'get',
url:'https://jsonplaceholder.typicode.com/todos/',//'https://jsonplaceholder.typicode.com/todos/'
}).subscribe(
response => {
console.log(response);
setThingState({ message: response.status });
},
error => {
console.log(error);
setThingState({ message: '404' });
}
);

}

然后在 React 功能组件中调用此函数,Redux 如下所示:
const [thingState, setThingState] = useState({ message: ''});
function testCall(){
thing(setThingState);
};

最佳答案

您输入了 setIssuerCallState作为一个字符串。而且您不能调用字符串。

你基本上是在做:

const aString = "a string"
aString() // error

看起来这个函数的正确类型是:
function IssuerCall(setIssuerCallState: (newState: { message: string }) => void) {
//...
}

现在 setIssuerCallState被键入为一个函数,它接受一个参数,该参数是一个带有 message 的对象属性(property)。

关于javascript - 此表达式不可调用类型 'String' 没有调用签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61416852/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com