'আমি কি সত্যিই এটি করতে চাই?' বিবেচনা করে শুরু করুন
সরাসরি এইচটিএমএলে এনামগুলিকে উল্লেখ করার ক্ষেত্রে আমার কোনও সমস্যা নেই, তবে কিছু ক্ষেত্রে এমন ক্লিনার বিকল্প রয়েছে যা টাইপ-নিরাপদ-নেসটি হারাবেন না। উদাহরণস্বরূপ আপনি যদি আমার অন্যান্য উত্তরে দেখানো পন্থাটি চয়ন করেন, আপনি নিজের উপাদানটিতে টিটিটিকে এই জাতীয় কিছু ঘোষণা করতে পারেন:
public TT =
{
// Enum defines (Horizontal | Vertical)
FeatureBoxResponsiveLayout: FeatureBoxResponsiveLayout
}
আপনার এইচটিএমএলটিতে একটি ভিন্ন লেআউট দেখানোর জন্য, আপনার *ngIf
প্রতিটি লেআউট প্রকারের জন্য একটি নকশা থাকতে হবে এবং আপনি সরাসরি আপনার উপাদানটির এইচটিএমএলে এনামকে উল্লেখ করতে পারেন:
*ngIf="(featureBoxResponsiveService.layout | async) == TT.FeatureBoxResponsiveLayout.Horizontal"
এই উদাহরণটি বর্তমান লেআউটটি পেতে একটি পরিষেবা ব্যবহার করে, এটি অ্যাসিঙ্ক পাইপ দিয়ে চালায় এবং তারপরে এটি আমাদের এনাম মানের সাথে তুলনা করে। এটি বেশ ভার্জোজ, সংশ্লেষিত এবং দেখতে খুব মজাদার নয়। এটি এনামের নামটিও প্রকাশ করে, যা নিজে অতিরিক্ত মাত্রায় ভার্জোজ হতে পারে।
বিকল্প, এটি এইচটিএমএল থেকে টাইপ সুরক্ষা বজায় রাখে
বিকল্পভাবে আপনি নিম্নলিখিতটি করতে পারেন, এবং আপনার উপাদানগুলির .ts ফাইলে আরও পাঠযোগ্য ফাংশন ঘোষণা করতে পারেন:
*ngIf="isResponsiveLayout('Horizontal')"
অনেক ক্লিনার! তবে কেউ যদি 'Horziontal'
ভুল করে টাইপ করে? আপনি এইচটিএমএলে এনাম ব্যবহার করতে চেয়েছিলেন তার পুরো কারণটি কি টাইপসেফ হওয়া উচিত?
আমরা কীওফ এবং কিছু টাইপ স্ক্রিপ্ট যাদু দ্বারা এখনও এটি অর্জন করতে পারি । এটি ফাংশনটির সংজ্ঞা:
isResponsiveLayout(value: keyof typeof FeatureBoxResponsiveLayout)
{
return FeatureBoxResponsiveLayout[value] == this.featureBoxResponsiveService.layout.value;
}
ব্যবহারের দ্রষ্টব্য FeatureBoxResponsiveLayout[string]
যা পরিবর্তন করে enum এর সাংখ্যিক মান জন্য পাস করতে স্ট্রিং মান।
আপনি যদি কোনও অবৈধ মান ব্যবহার করেন তবে এটি একটি এওটি সংকলন সহ একটি ত্রুটি বার্তা দেবে।
"H4orizontal" "প্রকারের আর্গুমেন্টটি" "উল্লম্ব" টাইপের প্যারামিটারে নির্ধারিত নয় "অনুভূমিক"
বর্তমানে ভিএসকোড H4orizontal
এইচটিএমএল সম্পাদকটিতে আন্ডারলাইন করার জন্য যথেষ্ট স্মার্ট নয় তবে সংকলনের সময় আপনি এই সতর্কতাটি পাবেন (- প্রোড বিল্ড বা --আওট স্যুইচ সহ) with ভবিষ্যতের আপডেটে এটিরও উন্নতি হতে পারে।