حامد صادقی
2 سال پیش توسط حامد صادقی مطرح شد
0 پاسخ

چک نکردن نوع متغییر در تایپ اسکریپت

سلام. من چند روزیه دارم با تایپ اسکریپت کار می کنم (در حال یاد گیری)
الان به یه مشکل عجیب برخورد داشتم که نمی دانم از سمت من هست یا یه باگ تو تایپ اسکریپت هست. انتظار من از تایپ اسکریپت این هست که نوع متغییر ها رو چک کنه و اگه یک مقدار اشتباه به متغییر دادم اون رو به من هشدار بده تا خطا زمان اجرا نداشته باشم.

type A = {
  a1: string
  a2: string
}
type B = {
  b1: string
}
type AB = {
  a1: string
  b1: string
}
const a: A = { a1: "", a2: "" }
const b: B = { b1: "" }

const ab: AB = { ...a, ...b }
console.log(ab) // {a1: "", a2: "" ,b1: ""}

در کد بالا من یک مقدار اشتباه به نوع متغییر AB دادم ولی تایپ اسکریپت متوجه نشد!

type User = {
  id: string
  mobile: string
  role: string
}

type UserJWT = {
  id: string
  role: string
}

const users: User[] = [{ id: "", mobile: "", role: "" }]

const jwt: UserJWT = users[0]
console.log(jwt) // { id: '', mobile: '', role: '' }

در کد بالا هم من ارایه ای از کاربران داردم و میتونم یکی از ایتم های ارایه رو با استفاده از ایندکس اون بگیرم (که دقیقا نوع User هست) و توی هر نوع متغییری بریزم! یعنی تایپ اسکریپ با مقادیر درون ارایه مثل نوع any رفتار می کنه!


ثبت پرسش جدید

به همدیگه کمک کنیم

به حامد صادقی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام