شاید در مواقعی بخواهیم که یکی از توابع کلاس یک نمونه یا instance از کلاس ما را به صورت آبجکت در اختیار ما قرار دهد و حتی شاید نیاز باشد آن را درون یک متغیر بریزیم . کلاس را مجهز به این قابلیت بکنیم که از خودش آبجکت ارائه دهد. از چنین کلاسی در هر بار فقط یک آبجکت صادر میشود و آن هم خودش تحویل میدهد.

class OnlyOne{
    private static instance:OnlyOne;
    private constructor(public name:string){}

    static getInstance(){
        if(!this.instance){
            this.instance = new OnlyOne('This is an instance of OnlyOne.');
        }
        return this.instance;
    }
}

let newObj = OnlyOne.getInstance();
console.log(newObj);