Erreur : « L'argument de type « chaîne | chaîne » n'est pas attribuable à l'argument de type « chaîne » »
P粉232409069
P粉232409069 2023-08-25 11:44:28
0
1
407

Je développe un projet Vue utilisant à la fois TypeScript et axios pour effectuer des appels d'API et développer un composant de réinitialisation de mot de passe, la fonction resetPassword dans mon fichier auth.ts ressemble à ceci

resetPassword(mot de passe1 : chaîne, mot de passe2 : chaîne, uid : chaîne, jeton : chaîne) : Promise renvoyer une nouvelle promesse((résoudre, rejeter) => { axios .post("API", { mot de passe1, mot de passe2, uid, jeton }) .then((res : any) => { résoudre(//RESOLU); }) .catch((erreur) => { //REJETER }) }) } 

Dans mon fichier ResetPassword.vue, j'utilise newPassword comme ceci

this.resetPassword(password1.value, password2.value, this.$route.params.id, this.$route.params.resetID).then( (rés) => si (mot de passe1.value == mot de passe2.value){ Notification{ "SUCCÈS" }); } 

Dans mon fichier ResetPassword.vue, j'obtiens une erreur sur le troisième paramètre disant "Le type 'string[]' n'est pas attribuable au type 'string'."

;

Je suis un peu nouveau sur ts et j'ai besoin d'aide.

Je suis confus entre les deux solutions ici, devrais-je avoir this.$route.params.id comme chaîne strong>this.$ Route.params.id.toString()

P粉232409069
P粉232409069

répondre à tous (1)
P粉322106755

Les paramètres d'itinéraire peuvent contenir plusieurs valeurs avec la même clé. C'est pourquoi il s'agit probablement d'un tableau de chaînes et non d'une seule chaîne. Si vous êtes sûr qu'il n'y a qu'un seul paramètre, vous pouvez utiliseras string来告诉打字稿编译器你知道这个变量 100% 是一个stringau lieu de string[]代码>

this.resetPassword(password1.value, password2.value, this.$route.params.id as string, this.$route.params.resetID as string)

Si vous utilisez le résultat de.toString()并且会有一个像["foo", "bar"]这样的数组,您将得到"foo ,bar"作为.toString()

Si vous n'êtes pas sûr qu'il s'agisse d'un tableau, vous pouvez le vérifier. S'il s'agit d'un tableau, prenez la première valeur :

.
let id: string; if (Array.isArray(this.$route.params.id)) { id = this.$route.params.id[0]; } else { id = this.$route.params.id; }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!