Erreur : « L'argument de type « chaîne | chaîne » n'est pas attribuable à l'argument de type « chaîne » »
P粉232409069
2023-08-25 11:44:28
<p>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</p>
<pre class="brush:php;toolbar:false;">resetPassword(mot de passe1 : chaîne, mot de passe2 : chaîne, uid : chaîne, jeton : chaîne) : Promise<any>
renvoyer une nouvelle promesse<any>((résoudre, rejeter) => {
axios
.post("API", { mot de passe1, mot de passe2, uid, jeton })
.then((res : any) => {
résoudre(//RESOLU);
})
.catch((erreur) => {
//REJETER
})
})
}</pré>
<p>Dans mon fichier ResetPassword.vue, j'utilise newPassword comme ceci</p>
<pre class="brush:php;toolbar:false;">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"
});
}</pré>
<p>Dans mon fichier ResetPassword.vue, j'obtiens une erreur sur le troisième paramètre disant <strong>"Le type 'string[]' n'est pas attribuable au type 'string'."</strong></p> ;
<p>Je suis un peu nouveau sur ts et j'ai besoin d'aide. </p>
<p>Je suis confus entre les deux solutions ici, devrais-je avoir <strong>this.$route.params.id comme chaîne</strong> strong>this.$ Route.params.id.toString()</strong></p>
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 utiliser
as string
来告诉打字稿编译器你知道这个变量 100% 是一个string
au lieu de 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 :
.