小编bor*_*ort的帖子

该表达式不可调用类型“String”没有调用签名

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

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' });
        }
    );

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将类型设置为 Any,那么就没有问题。如下面的代码所示。我仍然对 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' });
        }
    );

}
Run Code Online (Sandbox Code Playgroud)

然后在 React 功能组件中使用 Redux 调用该函数,如下所示:

const [thingState, setThingState] = useState({ …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs redux

18
推荐指数
1
解决办法
11万
查看次数

标签 统计

javascript ×1

reactjs ×1

redux ×1

typescript ×1