The code generated for JS constants involving the int64 Thrift type do not rely on the Int64 JS type (from the node-int64 package Thrift uses for handling 64-bit integers).
For example, consider the following Thrift constant definitions:
This results in generating the following code:
For the browser:
Since the JS number type cannot natively represent integers that do not fit into a double precision floating point, this will result in lost precision for certain values. E.g., printing MAX_INT64 would produce 9223372036854776000.
The correct output should be (showing for node.js):
Besides this, none of the Typescript type bindings (.d.ts files) contain the types for int64 types. This includes constants, types, and service method parameters.
Note that fixing this may break some of the existing code. In my mind, this is how it should work by default, but I don't know the policy in Thrift regarding backward compatibility. It could also be added as an option.