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;
Vous pouvez améliorer
ImportMetaEnv
en ajoutant une entrée à toutes les variables d'environnement personnalisées que vous utilisez :Dans
src/env.d.ts
(créer si nécessaire), ajoutez le code suivant :Si vous utilisez VS Code, vous devrez peut-être redémarrer le serveur TypeScript (ou l'EDI lui-même) pour recharger les types.