g1er / Andrew

0 stars 0 forks source link

Static property or method of Classes #25

Open IgorKulishov opened 6 years ago

IgorKulishov commented 6 years ago

Статические static свойства и методы доступны без создания нового объекта (при помощи оператора new перед классом) и могут быть вызваны напрямую при обращении к самому классу следующим образом:

class Products{
    constructor(private name){}

    static productType: string = 'engine';

    get productName(){
        return this.name;
    }
    set productName(name){
        this.name = name;
    }
    public logProductName(){
        console.log("product:" + this.productName);
    }

}

let prodType = Products.productType;

Обращаю внимание что переменная prodType получила доступ к static свойству класса Products.

IgorKulishov commented 6 years ago

Предлагаю создать любое свойство или метод внутри класса Products https://github.com/g1er/Andrew/blob/master/typescript/ts/products.ts и закомитеть в свой бренч и затем открыть мне запрос на pull request.

g1er commented 6 years ago

а как тогда мы зададим productName, если не создаем объект привычным методом через new?

IgorKulishov commented 6 years ago

Тут надо понимать два разных моменты: 1) как и прежде новый объект создается от класса посредством привычного оператора new 2) однако некоторые из свойств или методов класса доступны для использования и могут быть вызваны без создания нового объекта.

g1er commented 6 years ago

Я создал статик свойство и метод, залил на свой бренч и жду аппрува на мердж. Я не знаю, как сделать повторный запрос на аппрув существующего мердж реквеста, поэтому пишу тут

IgorKulishov commented 6 years ago

Да сделал все правильно с getter и setter, есть только замечания по другим методам и свойствам, я их напишу в коде так же. Позже могу рассписать здесь с примерами если есть вопросы.