বস্তুর সম্পত্তি অ্যাক্সেসের জন্য 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.