在 TypeScript 中导出和使用 IIFE class
Export and use a IIFE class in TypeScript
我正在尝试做一个具有隐私的模型 class,所以我在 Answer 模型文件中有这个 class with 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');
我收到此错误消息:"Method expression is not of Function type"。如何调用 Answer 构造函数?
我相信我们用 'new' 调用 类,例如:new Answer()
我正在尝试做一个具有隐私的模型 class,所以我在 Answer 模型文件中有这个 class with 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');
我收到此错误消息:"Method expression is not of Function type"。如何调用 Answer 构造函数?
我相信我们用 'new' 调用 类,例如:new Answer()