Typeচ্ছিক ফাংশন সহ টাইপস্ক্রিপ্টে কোনও ইন্টারফেস তৈরি করা সম্ভব?
interface IElement {
name: string;
options: any;
type: string;
value?: string;
validation(any): boolean; // --> should be optional.
}
Typeচ্ছিক ফাংশন সহ টাইপস্ক্রিপ্টে কোনও ইন্টারফেস তৈরি করা সম্ভব?
interface IElement {
name: string;
options: any;
type: string;
value?: string;
validation(any): boolean; // --> should be optional.
}
উত্তর:
ইন্টারফেসে টাইপস্ক্রিপ্ট ফাংশন ঘোষণার জন্য মঞ্জুরি দেয় এমন তিনটি সিনট্যাক্স রয়েছে:
validation1 টি প্যারামিটার ( anyটাইপ) এবং একটি booleanফেরতের মান গ্রহণ করে এমন কোনও ফাংশনের উদাহরণ ব্যবহার করে :
validation: {(flag: any): boolean};
বা আরও নতুন সিনট্যাক্সে:
validation(flag: any) : boolean;
বা বিকল্পটি হ'ল:
validation: (flag: any) => boolean;
সমাধান:
সুতরাং এটি পুরানো বাক্য গঠন দিয়ে alচ্ছিক করা সহজ:
validation?: {(flag: any): boolean};
দ্বিতীয় বাক্য গঠন সহ (সাম্প্রতিক সংযোজন - ধন্যবাদ @toothbrush)
validation?(flag: any) : boolean;
বা তৃতীয় বাক্য গঠনতে (যেমন আপনি পেয়েছেন):
validation?: (flag: any) => boolean;
anyএটি কোনও প্রকার নয়, তবে পরামিতিটির নাম যা স্পষ্টভাবে টাইপের any। পরামিতিগুলির নামকরণ করা আবশ্যক, এমনকি ইন্টারফেসেও। --NoImpLiveAny সক্ষম করা থাকলে এই কোডটি সংকলন করতে ব্যর্থ হবে। এটি এমন কিছু হওয়া উচিত: validation?:(whatever:any) => boolean;যেখানে whateverকিছু যুক্তিসঙ্গত প্যারামিটারের নাম।
if (object.validation):) এটি অবজেক্টের প্রেক্ষাপটের বিপরীতে হওয়া প্রয়োজন, if (this.validation)আপনার পরিস্থিতি অনুসারে এটি উপযুক্তও হতে পারে।