Комментарии 6
Typescript это способ для написания качественного, поддерживаемого кода на javascript.
мне очень нравится как с помощью замыканий в JS организуется инкапсуляция. В примерах мало где это приводят, поэтому позволю себе выложить пример:
const Counter = function() {
let counter = 0;
const increment = () => {
counter += 1;
console.log(counter);
}
return {
increment
};
}
const c = Counter();
c.increment();
c.increment();
c.increment();
console.log(c.counter); // undefined
да, для многих этот пример будет банальным, но если вернуться в прошлое, я очень долго понимал (тут я хотел бы сказать что это был достаточно длительный процесс понимания происходящего) как все это работает, поэтому для новичков из обычных ООП языков, типа Java, PHP, C# это такой паттерн для создания объектов с публичными и приватными полями и методами.
Более того, этот подход самый быстрый из возможных для js. Правда приводит к рождению монстров https://github.com/microsoft/TypeScript/blob/main/src/compiler/checker.ts
Я помню, как такие штуки на собесах спрашивали.
Так у вас в коде ошибка вы counter не вернули из функции Counter, нужно было сначала сделать объект с свойством counter менять это свойство в increment и вернуть объект из функции Counter.
Расширенные концепции JavaScript для написания качественного, поддерживаемого кода