انگولار - خطای تایپاسکریپت: Object.fromEntries خطای تایپاسکریپت
من یک تابع در تایپاسکریپت دارم که از Object.fromEntries استفاده میکند تا یک شیء پاسخ پیچیده را کاهش دهد و آن را با استفاده از زیررشتهای از کلید شیء فرزند گروهبندی کند.
let Newresult = res.map(object => Object.fromEntries(Object.entries(object).map(([key, value]) => [
key,
value.map(valueobject => Object.entries(valueobject).reduce((res1, [name, value]) => {
const key = name.slice(0, 5);
res1[key] = res1[key] || {};
res[key][name] = value;
return res1;
}, {}))
])));
اما مشکل این است که تایپاسکریپت در هنگام کامپایل خطای زیر را نشان میدهد.
error TS2339: Property 'fromEntries' does not exist on type 'ObjectConstructor'.
error TS2339: Property 'map' does not exist on type '{}'.
من تلاش کردم ESNext و ES2017.Object را به آرایه lib در tsconfig.json خود اضافه کنم، اما هنوز خطای کامپایل دریافت میکنم. اما همان بهروزرسانیها برای آرایه lib من اجازه میدهند از Object.entries استفاده کنم.
من از Angular نسخه ۶ و TypeScript نسخه ~3.1.1 استفاده میکنم
چه روش دیگری میتواند به من کمک کند تا همان نتیجهی بالا را به دست بیاورم؟ آیا کسی میتواند من را در مسیر درست راهنمایی کند؟
پیشاپیش ممنون!!
پاسخ شماره ۱
Object.fromEntries مربوط به ES2019 بود، بنابراین گزینه lib شما باید شامل آن باشد (یا ES2020). (ESNext یک هدف در حال تغییر است.)
با این حال، نسخه ۳.۱.۱ TypeScript نسبتاً قدیمی است. ممکن است نیاز به ارتقا داشته باشید.
پاسخ شماره ۲
- نسخه TypeScript برابر ۳.۹ است
فایل tsconfig.json را باز کنید
اضافه کردن
"target": "esnext",
"lib": ["esnext", "dom"]
