Maison  >  Questions et réponses  >  le corps du texte

Une erreur de dactylographie se produit lors de l'attribution de VITE_API_URL dans la baseURL d'axios

J'ai une configuration axios très basique sur une application Vue 3 construite sur Vite et Typescript. Cependant, j'obtiens une erreur dactylographiée pour "baseURL" qui se lit :

L'entrée 'string|'boolean|undefined' n'est pas attribuable au type 'string|undefined'. Le type 'false' n'est pas attribuable au type 'string | 'undefined'.ts(2322)

Comme explicitement indiqué, VITE_API_URL 的类型为 string |布尔 | undefined,但 baseURL n'aime pas accepter les valeurs booléennes. Maintenant, évidemment, je n'essaie pas d'attribuer une valeur booléenne à cette propriété, mais son type suggère qu'elle pourrait , et c'est suffisant pour la déranger.

Maintenant, Vite définit une interface pour VITE_API_URL, comme suit :

interface ImportMetaEnv {
  [key: string]: string | boolean | undefined
  BASE_URL: string
  MODE: string
  DEV: boolean
  PROD: boolean
  SSR: boolean
}

Si j'étais celui qui créait cette interface, je supprimerais simplement le booléen car je ne définirais jamais de booléen pour cette valeur, mais je ne suis pas convaincu que changer l'interface intégrée de Vite soit la bonne procédure ici.

Je continue d'élargir mes connaissances sur Typescript, donc j'espère que c'est quelque chose de simple qui me manque, mais je n'arrive pas à trouver de solution pour que ces deux-là jouent bien. Compte tenu de la popularité de Vite et Axios, j'espère que quelqu'un d'autre aura rencontré ce problème et trouvé une solution simple. Toute aide serait grandement appréciée !

httpClient.ts est la suivante :

import axios from 'axios';

const httpClient = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  headers: {
    'Content-Type': 'application/json',
  },
});

export default httpClient;

P粉014218124P粉014218124214 Il y a quelques jours441

répondre à tous(1)je répondrai

  • P粉176980522

    P粉1769805222024-03-20 11:21:40

    Vous pouvez améliorer ImportMetaEnv en ajoutant une entrée à toutes les variables d'environnement personnalisées que vous utilisez :

    1. Dans src/env.d.ts (créer si nécessaire), ajoutez le code suivant :

      /// 
      
      interface ImportMetaEnv {
        readonly VITE_API_URL: string
      }
      
    2. Si vous utilisez VS Code, vous devrez peut-être redémarrer le serveur TypeScript (ou l'EDI lui-même) pour recharger les types.

    répondre
    0
  • Annulerrépondre