问题出现在我封装node-fetch来满足全局自定义请求头的时候。
代码如下
import fetch from 'node-fetch'
const customHeader = {
UserAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36',
}
async function myFetch(
url: string,
fetchConfig = {
headers: customHeader,
}
) {
return fetch(url, fetchConfig)
}
export default {myFetch}
然后我在另一个文件里import执行,import {myFetch} from '../myFetch/myFetch'
,这样导入甚至都会报错,你必须import myFetch from '../myFetch/myFetch'
这样导入
执行出现了这个错误TS2349: This expression is not callable
但是你只要把默认导出的花括号去掉就可以了
export default myFetch
这下就不会报错了。
不知道这个设计的原因是什么,明明导出多个函数的时候是不会报错的,单个的时候用花括号就报错了。
网友评论