উত্তর:
আপনাকে যা করতে হবে তা হ'ল resultনীচের মত একটি স্ট্রিং অ্যারে হিসাবে আপনার সংজ্ঞা দেওয়া :
const result : string[] = [];
অ্যারের প্রকারটি সংজ্ঞায়িত না করে এটি ডিফল্টরূপে হবে never। সুতরাং আপনি যখন এটিতে একটি স্ট্রিং যুক্ত করার চেষ্টা করেছিলেন, তখন এটি একটি প্রকারের অমিল ছিল এবং তাই আপনি যে ত্রুটিটি দেখেছেন তা ছুঁড়ে দিয়েছে।
neverদরকারী হবে। তবে এটি সন্ধান করার সময় আমি এই উত্তরটি পেলাম যার মধ্যে দুর্দান্ত তথ্য রয়েছে।
let x;) ঘোষণা করেন এটি anyডিফল্টরূপে টাইপ হয়। না never।
any[]। অবাক হয়েছিল never[]যে এটি অকেজো করে তোলে। Unintuitive। উত্তর করার জন্য ধন্যবাদ. সম্পাদনা: ব্যাকরণ
আরেকটি উপায় হ'ল:
const result = [] as any;
anyকরা ভাল বিকল্প নয়, কারণ এটি মূলত কোনও টাইপস্ক্রিপ্ট বৈশিষ্ট্য বন্ধ করে দেয়। এটি একটি কার্যকরী এবং বিভিন্ন বাগের দিকে নিয়ে যেতে পারে।
এটি সাম্প্রতিক প্রতিরোধ বা টাইপস্ক্রিপ্টে কিছু অদ্ভুত আচরণ বলে মনে হচ্ছে। আপনার যদি কোডটি থাকে:
const result = []
সাধারণত এটি এমনভাবে ব্যবহার করা হবে যেমনটি আপনি লিখেছেন:
const result:any[] = []
তবে আপনার সিএসকিফাইজে যদি আপনার noImplicitAnyমিথ্যা এবং strictNullChecks সত্য দুটি থাকে তবে এটি হিসাবে বিবেচিত হবে:
const result:never[] = []
এই আচরণটি সমস্ত যুক্তি, আইএমএইচওকে অস্বীকার করে। নাল চেকগুলি চালু করা একটি অ্যারের প্রবেশের ধরণের পরিবর্তন করে ?? এবং তারপরে চালু করা কোনও সতর্কতা ছাড়াই noImplicitAnyব্যবহার পুনরুদ্ধার করে any??
আপনার যদি সত্যই অ্যারে থাকে any, আপনার অতিরিক্ত কোড সহ এটি নির্দেশ করার প্রয়োজন হবে না।
আমি একই ভুল চাপ ছিল ReactJS statless ফাংশন যখন ReactJs হুক ব্যবহার useState । আমি একটি অবজেক্ট অ্যারের স্থিতি সেট করতে চেয়েছিলাম, সুতরাং যদি আমি নিম্নলিখিত পদ্ধতিটি ব্যবহার করি
const [items , setItems] = useState([]);
এবং এই জাতীয় অবস্থা আপডেট করুন:
const item = { id : new Date().getTime() , text : 'New Text' };
setItems([ item , ...items ]);
আমি ত্রুটি পাচ্ছিলাম:
'' ID: সংখ্যা প্রকারের যুক্তি; পাঠ্য: '} কখনও না' টাইপের প্যারামিটারে কোনও} 'নির্ধারিত নয়
তবে যদি এটি এটি করে,
const [items , setItems] = useState([{}]);
ত্রুটি চলে গেছে তবে 0 সূচীতে একটি আইটেম রয়েছে যার কোনও ডেটা নেই (এটি চান না)।
সুতরাং আমি যে সমাধানটি পেয়েছি তা হ'ল:
const [items , setItems] = useState([] as any);
সমাধান আমি খুঁজে পেয়েছি ছিল
const [files, setFiles] = useState([] as any);
"কঠোরতম নলচেকস" সরান : "সংকলক অপশনগুলি" থেকে সত্য বা আপনার এনজি অ্যাপ্লিকেশনটির tsconfig.json ফাইলটিতে এটি মিথ্যাতে সেট করুন। এই ত্রুটিগুলি যে কোনও কিছুর মতো চলে যাবে এবং আপনার অ্যাপ্লিকেশন সফলভাবে সংকলন করবে।
দাবি অস্বীকার : এটি কেবলমাত্র এক কর্মচঞ্চল। এই ত্রুটিটি তখনই উপস্থিত হয় যখন নাল চেকগুলি সঠিকভাবে পরিচালনা করা হয় না যা কোনও অবস্থাতেই জিনিসগুলি সম্পন্ন করার পক্ষে ভাল উপায় নয়।
never[]? "অ্যারে যে সবসময় খালি থাকবে" ব্যতীত এর জন্য কি কখনও ব্যবহার রয়েছে?