Ralat: "Argumen jenis 'rentetan | rentetan' tidak boleh diserahkan kepada hujah jenis 'rentetan'"
P粉232409069
P粉232409069 2023-08-25 11:44:28
0
1
519
<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>
P粉232409069
P粉232409069

membalas semua(1)
P粉322106755

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[]代码>

this.resetPassword(password1.value, password2.value, this.$route.params.id as string, this.$route.params.resetID as 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:

let id: string;
if (Array.isArray(this.$route.params.id)) {
    id = this.$route.params.id[0];
} else {
    id = this.$route.params.id;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan