ইন্টারফেসে টাইপস্ক্রিপ্ট ptionচ্ছিক ফাংশন


99

Typeচ্ছিক ফাংশন সহ টাইপস্ক্রিপ্টে কোনও ইন্টারফেস তৈরি করা সম্ভব?

interface IElement {
  name: string;
  options: any;
  type: string;
  value?: string;
  validation(any): boolean; // --> should be optional.

}

4
আমি একটি উত্তর পেয়েছি, আমি মনে করি যে এটির মতো alচ্ছিক কার্যকারিতা বাস্তবায়ন করা সম্ভব: বৈধতা?: (কোনও) => বুলিয়ান;
আন্তন সেলিন

উত্তর:


194

ইন্টারফেসে টাইপস্ক্রিপ্ট ফাংশন ঘোষণার জন্য মঞ্জুরি দেয় এমন তিনটি সিনট্যাক্স রয়েছে:

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;

4
আপনি যেভাবে এটি লিখেছেন, anyএটি কোনও প্রকার নয়, তবে পরামিতিটির নাম যা স্পষ্টভাবে টাইপের any। পরামিতিগুলির নামকরণ করা আবশ্যক, এমনকি ইন্টারফেসেও। --NoImpLiveAny সক্ষম করা থাকলে এই কোডটি সংকলন করতে ব্যর্থ হবে। এটি এমন কিছু হওয়া উচিত: validation?:(whatever:any) => boolean;যেখানে whateverকিছু যুক্তিসঙ্গত প্যারামিটারের নাম।
এনওয়াইসিডটনেট

@ এনওয়াইসিডটনেট: হ্যাঁ, আমার আসলটি পড়ার মতো করা উচিত হয়নি । সংশোধন করা হয়েছে :)
কোডিং গেছে

@ গে-কোডিং হাই! ফাংশনটি সংজ্ঞায়িত করা হয়েছে কিনা তা আমি কীভাবে জানতে পারি?
ইলান অলকিজ

4
@ ইলানলকিজ: জাভাস্ক্রিপ্টের যে কোনও কিছুর জন্য আপনি একইভাবে পরীক্ষা করেছেন if (object.validation):) এটি অবজেক্টের প্রেক্ষাপটের বিপরীতে হওয়া প্রয়োজন, if (this.validation)আপনার পরিস্থিতি অনুসারে এটি উপযুক্তও হতে পারে।
কোডিং গেছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.