اینترفیس ها - Interfaces

تمام مواردی که در آبجکت اینترفیس تعریف میشوند، باید در آبجکت یا کلاسی که از اینترفیس ارث بری میکند، وجود داشته باشد.

اینترفیس یعنی قرار است تمام اجزای ذکر شده، پیاده سازی شوند (با همان نوع و مجوزهایی که تعیین شده است)

مگر اینکه با علامت (؟) تعیین کنیم که پیاده سازی این مورد اختیاری است، یعنی میتواند در آبجکت نمونه برداری شده وجود داشته باشد و میتواند وجود نداشته باشد.

interface ITestName{
    myName:string;
    myLname:string;
    myAge:number;
    testFunc():void;
    optional ?:string;
}
let mok:ITestName = {
    myName:'mokhtar',
    myAge:24,
    myLname:"mohammadiyan",
    testFunc(){
        console.log(this.myAge);
    }
}
console.log(mok)

نکته : شاید هنگام نوشتن اینترفیس ندانیم که از چه نامی قرار است برای یک خاصیت استفاده شود ولی از وجودش اطمینان داریم. در چنین مواقعی به صورت زیر عمل میکنیم.

[propName:string]:any;

نام خاصیت در آبجکت به عنوان کلید مورد استفاده قرار میگیرد و از نوع رشته است.