Ralat: "Argumen jenis 'rentetan | rentetan' tidak boleh diserahkan kepada hujah jenis 'rentetan'"
P粉232409069
2023-08-25 11:44:28
<p>Saya sedang membangunkan projek Vue menggunakan kedua-dua TypeScript dan axios untuk membuat panggilan API dan membangunkan komponen tetapan semula kata laluan, fungsi resetPassword dalam fail auth.ts saya kelihatan seperti ini</p>
<pre class="brush:php;toolbar:false;">resetPassword(password1: string, password2: string, uid: string, token: string): Janji<mana-mana>
kembalikan Janji baharu<sebarang>((selesaikan, tolak) => {
aksios
.post("API", { password1, password2, uid, token })
.then((res : any) => {
selesaikan(//RESOLVE);
})
.catch((error) => {
//TOLAK
})
})
}</pre>
<p>Dalam fail ResetPassword.vue saya, saya menggunakan newPassword seperti yang ditunjukkan di bawah</p>
<pre class="brush:php;toolbar:false;">this.resetPassword(password1.value, password2.value, this.$route.params.id, this.$route.params.resetID).then(
(res) =>
if(password1.value == password2.value){
Pemberitahuan{
"BERJAYA"
});
}</pre>
<p>Dalam fail ResetPassword.vue saya, saya mendapat ralat pada parameter ketiga yang mengatakan <strong>"Taip 'rentetan[]' tidak boleh ditugaskan untuk menaip 'rentetan'."</strong></p> ;
<p>Saya agak baru mengenali ts dan saya memerlukan bantuan. </p>
<p>Saya keliru antara dua penyelesaian di sini, sekiranya saya mempunyai <strong>ini.$route.params.id sebagai rentetan</strong>atau adakah ini lebih baik</ em> kuat>ini.$ Route.params.id.toString()</strong></p>
Parameter laluan boleh mengandungi banyak nilai dengan kunci yang sama. Itulah sebabnya ia mungkin susunan rentetan dan bukan rentetan tunggal. Jika anda pasti hanya terdapat satu parameter, anda boleh menggunakan
as string
来告诉打字稿编译器你知道这个变量 100% 是一个string
dan bukannya string[]代码>Jika anda akan menggunakan hasil
.toString()
并且会有一个像["foo", "bar"]
这样的数组,您将得到"foo ,bar"
作为.toString()
Jika anda tidak pasti sama ada ia adalah tatasusunan, anda boleh menyemaknya Jika ia adalah tatasusunan, ambil nilai pertama: