Fehler: „Argument vom Typ ‚string | string' kann nicht dem Argument vom Typ ‚string' zugewiesen werden'
P粉232409069
2023-08-25 11:44:28
<p>Ich entwickle ein Vue-Projekt, das sowohl TypeScript als auch Axios verwendet, um API-Aufrufe durchzuführen und eine Komponente zum Zurücksetzen des Passworts zu entwickeln. Die Funktion „resetPassword“ in meiner auth.ts-Datei sieht so aus</p>
<pre class="brush:php;toolbar:false;">resetPassword(passwort1: string, passwort2: string, uid: string, token: string): Promise<any>
neues Versprechen zurückgeben<beliebig>((auflösen, ablehnen) => {
Axios
.post("API", { Passwort1, Passwort2, UID, Token })
.then((res : any) => {
auflösen(//AUFLÖSEN);
})
.catch((error) => {
//ABLEHNEN
})
})
}</pre>
<p>In meiner ResetPassword.vue-Datei verwende ich newPassword wie folgt</p>
<pre class="brush:php;toolbar:false;">this.resetPassword(password1.value, passwort2.value, this.$route.params.id, this.$route.params.resetID).then(
(res) =>
if(passwort1.wert == passwort2.wert){
Benachrichtigung{
„Erfolg“
});
}</pre>
<p>In meiner ResetPassword.vue-Datei erhalte ich beim dritten Parameter eine Fehlermeldung mit der Meldung <strong>„Typ 'string[]' kann nicht dem Typ 'string' zugewiesen werden.“</strong></p> ;
<p>Ich bin ein bisschen neu in Sachen Ts und brauche etwas Hilfe. </p>
<p>Ich bin zwischen den beiden Lösungen verwirrt, sollte ich <strong>this.$route.params.id als String</strong>oder ist das besser</ em>? strong>this.$ Route.params.id.toString()</strong></p>
路由参数可以包含许多具有相同键的值。这就是为什么它可能是字符串数组而不是单个字符串。如果你确定只有一个参数,你可以使用
as string
来告诉打字稿编译器你知道这个变量 100% 是一个string
而不是 字符串[]代码>如果您将使用
的结果.toString()
并且会有一个像["foo", "bar"]
这样的数组,您将得到"foo ,bar"
作为.toString()
如果不确定是否是数组,可以检查一下,如果是数组则取第一个值: