To explain my situation: I am thinking of a nice way to write a internationalization library which is compatible in both the browser and node, I have written type declarations f