Экспорт и использование класса IIFE в TypeScript - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать класс модели с конфиденциальностью, поэтому у меня есть этот класс с clousures в Ответ файл модели:

export class Answer {
  getId;
  getText;

  constructor(id: string, text: string) {
    const idPrivate = id;
    const textPrivate = text;

    this.getId = () => idPrivate;
    this.getText = () => textPrivate;
  }
}

Так что я могу использовать его таким образомв других файлах:

import {Answer} from '../shared/model/Answer';
...
const answers: Array<Answer> = [];
answers.push(new Answer('1', '1'));

Теперь с ES6 у нас есть Symbol , поэтому я пытаюсь сделать то же самое, но у меня проблемы с экспортом и использованием функции.Это код:

const Answer = (() => {
  const idPrivate = Symbol();
  const textPrivate = Symbol();

  class Answer {
    constructor(id: string, text: string) {
      this[idPrivate] = id;
      this[textPrivate] = text;
    }

    getId() {
      return this[idPrivate];
    }

    getText() {
      return this[textPrivate];
    }
  }

  return Answer;
})();

export {Answer};

Как я могу использовать эту функцию IIFE?Например, для этого кода:

const answer = Answer('ss', 'ss');

Я получаю это сообщение об ошибке: «Выражение метода не относится к типу функции».Как я могу вызвать конструктор Answer ?

1 Ответ

0 голосов
/ 15 февраля 2019

Я считаю, что мы называем классы 'new', например: new Answer ()

...