আমি মনে করি এটি করার জন্য আপনার কাছে মূলত পাঁচটি আলাদা বিকল্প রয়েছে । আপনি যে লক্ষ্যটি অর্জন করতে চান তার উপর নির্ভর করে তাদের মধ্যে নির্বাচন করা সহজ হতে পারে।
বেশিরভাগ ক্ষেত্রে কোনও শ্রেণি ব্যবহার এবং তা ইনস্ট্যান্ট করার সর্বোত্তম উপায় , কারণ আপনি টাইপ স্ক্রিপ্ট ব্যবহার করে টাইপ চেকিং প্রয়োগ করেন।
interface IModal {
content: string;
form: string;
//...
//Extra
foo: (bar: string): void;
}
class Modal implements IModal {
content: string;
form: string;
foo(param: string): void {
}
}
এমনকি যদি অন্য পদ্ধতিগুলি কোনও ইন্টারফেস থেকে কোনও অবজেক্ট তৈরির সহজ উপায় সরবরাহ করে তবে আপনার ইন্টারফেসটি আলাদা করে বিবেচনা করা উচিত , যদি আপনি নিজের বিষয়টিকে বিভিন্ন বিষয়ে ব্যবহার করছেন এবং এটি ইন্টারফেসকে অতিরিক্ত- বিভাজনের কারণ না করে:
interface IBehaviour {
//Extra
foo(param: string): void;
}
interface IModal extends IBehaviour{
content: string;
form: string;
//...
}
অন্যদিকে, উদাহরণস্বরূপ ইউনিট আপনার কোডটি পরীক্ষা করার সময় (আপনি যদি উদ্বেগের বিচ্ছিন্নতা প্রায়শই প্রয়োগ নাও করতে পারেন), আপনি উত্পাদনশীলতার স্বার্থে ত্রুটিগুলি গ্রহণ করতে সক্ষম হতে পারেন। আপনি বেশিরভাগ বড় তৃতীয় পক্ষের * .d.ts ইন্টারফেসের জন্য উপহাস তৈরির জন্য অন্যান্য পদ্ধতি প্রয়োগ করতে পারেন। এবং প্রতিটি বিশাল ইন্টারফেসের জন্য সম্পূর্ণ বেনামে থাকা বস্তুগুলি সর্বদা প্রয়োগ করা ব্যথা হতে পারে।
এই পথে আপনার প্রথম বিকল্পটি খালি অবজেক্ট তৈরি করা :
var modal = <IModal>{};
দ্বিতীয়ত আপনার ইন্টারফেসের বাধ্যতামূলক অংশটি পুরোপুরি উপলব্ধি করা । আপনি তৃতীয় পক্ষের জাভাস্ক্রিপ্ট লাইব্রেরি কল করছেন কিনা তা কার্যকর হতে পারে তবে আমি মনে করি এর পরিবর্তে আপনার ক্লাস তৈরি করা উচিত, আগের মতো:
var modal: IModal = {
content: '',
form: '',
//...
foo: (param: string): void => {
}
};
তৃতীয়ত আপনি আপনার ইন্টারফেসের মাত্র একটি অংশ তৈরি করতে পারেন এবং একটি বেনামী অবজেক্ট তৈরি করতে পারেন , তবে এইভাবে চুক্তিটি সম্পাদন করতে আপনি দায়বদ্ধ
var modal: IModal = <any>{
foo: (param: string): void => {
}
};
ইন্টারফেসগুলি alচ্ছিক হলেও আমার জবাবের সংক্ষিপ্তসার, কারণ সেগুলি জাভাস্ক্রিপ্ট কোডে স্থানান্তরিত করা হয়নি, টাইপস্ক্রিপ্টটি বুদ্ধিমান এবং ধারাবাহিকভাবে ব্যবহৃত হলে বিমূর্তির একটি নতুন স্তর সরবরাহ করার জন্য রয়েছে। আমি মনে করি, কেবলমাত্র আপনি নিজের কোড থেকে আপনার বেশিরভাগ ক্ষেত্রে এগুলি খারিজ করতে পারেন।