gpt4 book ai didi

javascript - 使用 TypeScript 在使用 BigNumber.toString 时会触发编译错误?

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:04 30 4
gpt4 key购买 nike

如果调用 BigNumber.toString 是否可以使用 TypeScript 触发编译时错误?

具体来说,我的应用程序遇到了错误,因为 BigNumber.toString() 将以科学记数法表示足够大和足够小的数字:

> x = new BigNumber('0.00000000001')
> x.toString()
'1e-10'
> x.toFixed()
'0.00000000001'

我已经尝试覆盖类型:

import {BigNumber} from "bignumber.js";

declare module "bignumber.js" {
interface BigNumber {
toString: never
someOtherThing: number
}
}

但这似乎不起作用(并且添加了 someOtherThing 字段,所以我知道正在加载类型定义)

如果使用了 BigNumber.toString,如何触发编译错误?

(另请注意:我已经设置了 BigNumber.config({ EXPONENTIAL_AT: 1e+9 }) 并重载了 BigNumber.toString 所以它会发出警告,但它添加编译错误会很好)

最佳答案

Is it possible to use TypeScript to trigger a compile-time error if BigNumber.toString is called

几个选项

创建自定义 linter 规则

关于 tslint 的文档:https://palantir.github.io/tslint/develop/custom-rules/您的自定义规则将是类型检查规则:https://palantir.github.io/tslint/usage/type-checking/

并将 BigNumber 上的 toString 调用更改为错误。

编辑安装类型

通过编辑已安装的 .d.ts 从 BigNumber 中删除 toString 方法并使用 PatchPackage 提交它:https://github.com/ds300/patch-package

创建包装器

或者围绕 BigNumber 创建一个包装器,它不会暴露任何您认为对您的开发人员有危险的东西 🌹

想法

我个人会使用补丁包作为更简单的方法。如果您在图书馆进行大量财务工作,请考虑为您的用例使用包装器。

关于javascript - 使用 TypeScript 在使用 BigNumber.toString 时会触发编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55013499/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com