在TypeScript中导出和使用IIFE类

问题描述 投票:0回答:1

我正在尝试用隐私做一个模型类,所以我在Answer模型文件中有这个类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构造函数?

javascript angular typescript model iife
1个回答
0
投票

我相信我们用'new'来调用类,比如:new Answer()

© www.soinside.com 2019 - 2024. All rights reserved.