বস্তুর সম্পত্তি অ্যাক্সেসের জন্য alচ্ছিক চেইন অপারেটর ব্যবহার করা


14

টাইপস্ক্রিপ্ট 3.7 এখন alচ্ছিক চেইনিং অপারেটরটিকে সমর্থন করে । সুতরাং, আপনি কোড লিখতে পারেন যেমন:

const value = a?.b?.c;

অর্থাত্, আপনি এই অপারেটরটিকে কোনও সামগ্রীর বৈশিষ্ট্য অ্যাক্সেস করতে ব্যবহার করতে পারেন, যেখানে অবজেক্টটি নিজেই হতে পারে nullবা undefined। এখন আমি যা করতে চাই তা মূলত একই তবে সম্পত্তির নামগুলি গতিশীল:

const value = a?[b]?.c;

তবে, সেখানে আমি একটি সিনট্যাক্স ত্রুটি পেয়েছি:

ত্রুটি টিএস 1005: ':' প্রত্যাশিত।

আমি এখানে কি ভুল করছি? এটা কি সম্ভব?

PS: প্রস্তাবটি বোঝাচ্ছে যে এটি সম্ভব নয় but (তবে সম্ভবত আমি সিনট্যাক্সের উদাহরণগুলি ভুল পেয়েছি)।


1
আপনি বিন্দুটি মিস করেন, অপারেটরটি হল?.
— zessx

হ্যাঁ, অবশ্যই অনেক ধন্যবাদ 😊
— গলো রডেন

উত্তর:


17

বন্ধনী স্বরলিপি এবং alচ্ছিক চেইন ব্যবহার করে কোনও সম্পত্তি অ্যাক্সেস করার সময়, আপনার বন্ধনী ছাড়াও একটি বিন্দু থাকা দরকার:

const value = a?.[b]?.c;

এটি টি সি 39 প্রস্তাব দ্বারা গৃহীত সিনট্যাক্স , কারণ অন্যথায় পার্সারের পক্ষে এটি নির্ধারণ করা শক্ত যে এটি ?কোনও ত্রৈমাসিক অভিব্যক্তির অংশ বা alচ্ছিক শৃঙ্খলার অংশ কিনা ।


1
আমি প্রতিস্থাপন চাই হার্ড সঙ্গে অসম্ভব ।
— ভোলআরন

@ ভোলআরন কেন এমন - আমি মনে করি এটির জন্য অপেক্ষা করতে পারে:
— AnArrayOfFunitions

এটি আলাদা করতে সক্ষম হবে না, বিশেষত যখন ত্রুটি রয়েছে।
— vol7ron
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.