網站搜尋

typescript - 在發送授權時,模板字面量表達式的類型 "string | null" 無效。


當我試圖執行授權時,Ts-eslint 以訊息 "模板字面量表達式的類型 "string | null" 無效" 停止了我。

這個值來自 localstorage,所以它必須是 null 或 string,但我也必須將它與 Bearer 結合。

   onMounted(async ()=>{
      let myToken = localStorage.getItem('token');
      
      await axios.post(
        'http://localhost:3000/getdocuments', 
        {headers:{'Authorisation':`Baerer ${myToken}`}}
      )
      .then((res)=>{
          console.log(res);
      })
      .catch(err=>{
          console.log(err);
      })
    })

答案#1

我認為這個請求應該只在存在 token 時被調用

onMounted(async ()=>{
      let myToken = localStorage.getItem('token');
      if (!myToken) {
        console.warn('token is empty');
      } else {
        await axios.post(
          'http://localhost:3000/getdocuments', 
          {headers:{'Authorisation':`Baerer ${myToken}`}}
        )
        .then((res)=>{
            console.log(res);
        })
        .catch(err=>{
            console.log(err);
        })
      }
    })

答案#2

抱歉這麼晚回覆,但我遇到了同樣的錯誤,剛剛透過空值防護檢查修好了它。

在你拿到你的代幣之後,

if (!myToken) {
    // Error handle
}