استخراج type از متغیر در typescript

typescript

#1

سلام
اینتر فیس های من به شکل زیر تعریف شدند

 interface test {
   [key: string]: string
}

interface state {
   tests: test,
   t1:test
}

و متغیر هام به شکل زیر:

const a: state = {
  tests:{
    mda:'m',
    mdaa:'e'
   },
  t1: {
    kdf:'sss'
  }
}
const { tests, t1 } = a

const t2 = tests.mda

مشکل اینجاست که وقتی میخوام در متغیر t2 از tests استفاده کنم key های tests رو نمیاره تا من از بین اونا انتخاب کنم و من میتونم هر key ای اونجا بزنم که این باعث خطا میشه اگه اشتباه بزنم. حالا من میخوام شما کمکم کنید تا یک تایپ مناسب برایش بذارم هر چی گشتم چیزی پیدا نکردم

 const { tests, t1 } : {tests:....., t1:.....} = a

اینم لینک playground


#2

داده mda الان ذخیره کرده

interface test {
    [key: string]: string
}
interface state {
    tests: test,
    t1:test
}
const a: state = {
    tests:{
        mda:'m',
        mdaa:'e'
    },
    t1: {
        kdf:'sss'
    }
}
const { tests, t1 }  = a

const t2 = tests.mda

console.log(t2)
console.log(tests)

خروجی

m
{ mda: 'm', mdaa: 'e' }

#3

درسته ذخیره کرده ولی اگه الان بزنید

 const t2 = tests.mdaaaaaa

هیچ خطایی نشون نمیده که tests این key رو نداره منظورم این بود


#4

به جای interface از کلاس استفاده کنی بهتر type ها تشخیص داده میشن


#5

مشکل اینجاست که من از این اینترفیس استفاده کردم

 interface test {
    [key: string]: string
 }

فکر کنم باید تابعی بنویسیم که از tests این key ها بکشه بیرون