Use TypeScript Arrow Function to scope constructor for WeakMap