我想做这样的事情:
let serialId = 0;
export function getId() {
serialId = serialId + 1;
return serialId;
}
每次我从不同地方调用它时,id都会增加。现在看来,serialId
的值对于每个import
是独立的。
我是否需要一些神奇的声明,或者甚至需要一些工具来具有持久的“全局”状态。如果可能,我不希望serialId在模块外部可见。
答案 0 :(得分:0)
您可以尝试使用类中的方法:
export default class {
serialId: number;
constructor () {
this.serialId = 0;
}
public getId(): number {
this.serialId += 1;
return this.serialId
}
}
答案 1 :(得分:0)
如果您希望使用更多的功能性方法,则可以导出工厂:
export const stateFactory = (() => {
let id = 0;
return ({
getId() {
return ++id;
}
})
})()
const b = stateFactory.getId(); // 1
const c = stateFactory.getId(); // 2