What about this ?
interface Incrementor {
readonly counter: number;
inc(): void
}
function createIncrementor2(i = 0): Incrementor {
return {
get counter() {return i},
inc() {
i++;
},
}
}
https://www.typescriptlang.org/play/#code/JYOwLgpgTgZghgYwgAgJIgVCBbC4D2UyA3gFDLJZwAm+IANgJ7IL4Cu40AXMiG9gCNoAbnLJQCABQBKHgDd8waqQC+pGBwRhgdFlUjpMOPGEIAmSQjZQs4ZAF5kABlloMWXASJkKWMNZASMQoAcwgwFnZOKBkSPwCWa1swFQAaYPEMWJ8KXKsbEwBqQtFc5DSxNTUgA