@wb_by
Учусь

Как экспортировать из замыкания в TypeScript?

Делаю плагин на typescript, нужно создать замыкание чтобы не сломать чужой код случайно. Без замыкания экспортируется нормально:
class Model {
    settings = {
      min: 0,
      max: 100
    };

    constructor(options: Object) {
      this.settings = $.extend(this.settings, options);
    }

    static pow(num: number, pow: number): number {
      return num ** pow;
    }
  }

  export default Model;

Но с замыканием пишет: An export assignment can only be used in a module.
(function($: any): void {
  class Model {
    settings = {
      min: 0,
      max: 100
    };

    constructor(options: Object) {
      this.settings = $.extend(this.settings, options);
    }

    static pow(num: number, pow: number): number {
      return num ** pow;
    }
  }

  export default Model;
})(jQuery);

Как красиво это решить?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 2
@abberati
frontend-разработчик
То, что вы называете замыканием — это паттерн «модуль» из бородатых старых лет, реализованный через замыкание. Ваш код написан в ES2015 модуле, использование которого отметает необходимость в древних «модулях». Почитайте, как работают модули. Чтобы решить вашу задачу нужно много наводящих вопросов и текста — мне лень)
Ответ написан
Комментировать
Robur
@Robur
Знаю больше чем это необходимо
никак.
пишите как в первом варианте и забудьте про подобные "замыкания". ничего вы не сломаете, как минимум нечаянно
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы