Typescript Test Support with Typechain/truffle-v5 type mismatch

Hey guys! I'm trying to enable typescript support for my ERC1155 Upgradable via @typechain/truffle-v5. It is a bit of an overhead since there are known limitations, like migrations scripts need to be transpiled to js for them to run, but hey, some1 needs to do it. :smiley:

During this, after following this example of the guys from typechain I ran into a type mismatch in the migrations. Code example below.

:1234: Code to reproduce

import { deployProxy } from '@openzeppelin/truffle-upgrades';

module.exports = async function (deployer) {
    const Pass = artifacts.require('Loyalty');
    const instace = await deployProxy(Pass, ["0xesadas", "0xasdasd"], { deployer});
    console.log('Deployed', instace.address);

} as Truffle.Migration;

export { }

:computer: Environment


  "scripts": {
    "generate-types": "npx typechain --target=truffle-v5 'build/contracts/*.json'",
    "postinstall": "npx truffle compile && npm run generate-types",
    "migrate": "tsc -p ./tsconfig.migrate.json --outDir ./migrations && truffle migrate",
    "typecheck": "tsc --noEmit",
    "test" : "truffle test",
    "compile" : "truffle compile"
  "devDependencies": {
    "@openzeppelin/contracts-upgradeable": "^4.2.0",
    "@openzeppelin/truffle-upgrades": "^1.8.0",
    "@typechain/truffle-v5": "^5.0.0",
    "@types/chai": "^4.2.21",
    "@types/mocha": "^9.0.0",
    "@types/node": "^16.4.13",
    "solc": "^0.8.6",
    "truffle": "^5.4.3",
    "ts-node": "^10.1.0",
    "typechain": "^5.1.2",
    "typescript": "^4.3.5"


The error is on line 5 of the code snippet, where:
Argument of type 'LoyaltyContract' is not assignable to parameter of type 'ContractClass'.
Type 'LoyaltyContract' is missing the following properties from type 'ContractClass': setProvider, defaults, bytecode, currentProvider, class_defaults


*contract Loyalty is ERC1155Upgradeable, OwnableUpgradeable * and *has a valid initializer* .

Typechain is not supported. We had a PR but didn't make progress, link below. Do you want to try to pick it up and contribute a fix?