如果我生成headers
并且有条件地改变:
let headers = {
'Content-Type': 'application/json',
crossDomain: true,
}
if (authnRes?.data?.jwt) {
headers['Authorization'] = `Bearer ${authnRes?.data?.jwt}`
}
我将得到一个错误:
Element implicitly has an 'any' type because expression of type '"Authorization"' can't be used to index type '{ 'Content-Type': string; crossDomain: boolean; }'.
Property 'Authorization' does not exist on type '{ 'Content-Type': string; crossDomain: boolean; }'.
我该怎么解决这个问题呢?是不是一个预先定义的axios
类型的头文件?
axios({
// ..
headers: headers,
})
.then((resp: any) => {
})
.catch((err) => console.error(err))
--
有没有比这更简单的方法?
let headers: {
[key: string]: string | boolean
} = {
'Content-Type': 'application/json',
crossDomain: true,
}
2条答案
按热度按时间xnifntxz1#
您可以从
axios
导入AxiosRequestHeaders
,并使用它来键入headers
变量,如下所示:顺便说一句,如果你去看看类型定义,你会发现它和你的尝试非常相似:
r7knjye22#
@coglialoro解决方案仍然有错误,使用以下符号解决: