سلام
اینتر فیس های من به شکل زیر تعریف شدند
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
samdvr
اکتبر 24, 2018, 7:15ب.ظ
#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' }
1 پسندیده
درسته ذخیره کرده ولی اگه الان بزنید
const t2 = tests.mdaaaaaa
هیچ خطایی نشون نمیده که tests این key رو نداره منظورم این بود
samdvr
اکتبر 25, 2018, 1:13ق.ظ
#4
به جای interface از کلاس استفاده کنی بهتر type ها تشخیص داده میشن
1 پسندیده
مشکل اینجاست که من از این اینترفیس استفاده کردم
interface test {
[key: string]: string
}
فکر کنم باید تابعی بنویسیم که از tests این key ها بکشه بیرون