Observação: sei que não deveríamos usar
bn.js
e apenas usar BigInts, mas tenho uma base de código legada e ainda não migrei dela.
O código a seguir compila e roda perfeitamente :
import { BN } from "bn.js";
import assert from "node:assert/strict";
const one = new BN(1);
one.cmp(one);
export const assertBigNumberEqual = (actual: BN, expected: BN) => {
return assert(actual.cmp(expected) === 0);
};
console.log("this will work");
assertBigNumberEqual(new BN(1), new BN(1));
console.log("yay it worked");
console.log("this will throw an error");
console.log(assertBigNumberEqual(new BN(1), new BN(2)));
Mas sobre este recurso, TS alerta:
export const assertBigNumberEqual = (actual: BN, expected: BN) => {
return assert(actual.cmp(expected) === 0);
};
'BN' refere-se a um valor, mas está sendo usado como um tipo aqui. Você quis dizer 'typeof BN'? ts(2749)
Se eu usar typeof BN
nos parâmetros, porém, actual.cmp
não funcionará.
Não quero usar @ts-ignore
, mas quero corrigir o erro.
Como faço para corrigir o aviso do TypeScript?