gpt4 book ai didi

typescript :此表达式不可调用。类型 '{ getUserInfo(requestData: object): Promise; }' 没有调用签名
转载 作者:行者123 更新时间:2023-12-03 23:08:13 24 4
gpt4 key购买 nike

当我在 typescript 中调用另一个函数时,我遇到了以下问题

此表达式不可调用。
类型 '{ getUserInfo(requestData: object): Promise; }' 没有调用签名。
在我的 index.ts

索引.ts

  const fetchApiData = await getUserInfo(requestData)

服务.ts
import { userInfoApi } from '../constants/api'
import request from '../utils/request'

export default {
async getUserInfo(requestData: object): Promise<object> {
return await request(userInfoApi, requestData, 'GET')
},
}

请求.ts
const request = (operation: string, data: object, method: any): Promise<object> => {
return new Promise(function(resolve, reject) {
my.request({
url: operation,
data: data,
method: method,
success: function(res) {
resolve(res)
},
fail: function(err) {
reject(err)
},
})
})
}

export default (operation: string, data: object, method: any): Promise<any> => {
let timeHandle
const timeout = 65 * 1000
const promiseTimeout = new Promise(resolve => {
timeHandle = setTimeout(() => {
resolve({
success: false,
errorCode: 'NETWORK_TIMEOUT',
errorMessage: 'Network Timeout',
})
}, timeout)
})

return Promise.race([
request(operation, data, method).then(result => {
clearTimeout(timeHandle)
return result
}),
promiseTimeout,
])
}

知道如何解决吗?

最佳答案

错误是有效的。

修复选项 1:随时修复

根据您的错误 Type '{ getUserInfo(requestData: object): Promise; }' has no call signatures而不是调用 something(requestData)你应该调用something.getUserInfo(requestData) .

修复选项 2:在定义处修复

改变:

export default {
async getUserInfo(requestData: object): Promise<object> {
return await request(userInfoApi, requestData, 'GET')
},
}


export default async function getUserInfo(requestData: object): Promise<object> {
return await request(userInfoApi, requestData, 'GET')
};

关于 typescript :此表达式不可调用。类型 '{ getUserInfo(requestData: object): Promise<object>; }' 没有调用签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60924989/

24 4 0