سلام، در این پست میخوام راجب Interface و چگونگی کارکردش تو Class ها در TypeScript توضیح بدم.
ساختار Interface یک ساختار منحصر به TypeScript هستش که ما با استفاده ازش یک ساختار تایپی برای تعریف کردن متغیرها میسازیم و عموما کاربردش در Class ها هستش. بریم با مثال ببینیم چجوری ازش میشه استفاده کرد:
interface Intern { fullName: string; course: string; step: number; showInternData(): void; } class CreateNewIntern implements Intern { fullName: string; course: string; step: number; constructor(fullName: string, course: string, step: number) { this.fullName = fullName; this.course = course; this.step = step; } showInternData = (): void => { console.log( `${this.fullName} is in ${this.course} course at Step ${this.step}.` ); }; } const ali: Intern = new CreateNewIntern("Ali Sadeghi", "Web", 8); console.log(ali.showInternData());
تو این مثال اول ما یک Interface با اسم Intern تعریف کردیم و داخلش اسم متغیر و تایپشون رو تعریف کردیم.
جلوتر یک Class با اسم CreateNewIntern تعریف کردیم و ازش خواستیم که ساختار متغیرهاش شبیه Interface Intern باشه. تعریف Class در TypeScript یکم خاص هستش، اول باید تایپ متغیرهایی که قرار هست در Constructor ساخته بشن رو مشخص کنیم و بعد تو Constructor تعریفشون کنیم و دقیقا باید همون متغیرهایی رو تعریف کنیم که تو ساختار Interface تعریف کردیم و به Class گفتیم از این قالب پیروی کن. داخل Class یک function با اسم showInternData با تایپ void تعریف شده. این function هم مثل بقیه متغیرها چون در قالب Interface قبلا تعریف شده، باید اینجا هم حضور داشته باشه. تایپ function هم void هستش چون فقط اطلاعات کلاس رو لاگ میگیره و چون return ای نداره، تایپش رو باید void بذاریم.
جلوتر متغیر ali رو با تایپ Intern (میشد برای تایپ CreateNewIntern هم گذاشت) از کلاس CreateNewIntern تعریف کردیم و تو خط آخر وقتی تابع showInternData رو روی متغیر ali صدا میزنیم، این عبارت برامون لاگ گرفته میشه:
Ali Sadeghi is in Web course at Step 8.
#cs_internship
#step8
#web