TypeChain
TypeScript bindings for Ethereum smart contracts
...TypeChain solves these problems (as long as you use TypeScript). TypeChain is a code generator - provide ABI file and name of your blockchain access library (ethers/truffle/web3.js) and you will get TypeScript typings compatible with a given library.