gpt4 book ai didi

node.js - BigNumber 的 TypeScript 类型定义

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:56 25 4
gpt4 key购买 nike

我正在尝试使用 BigNumber TypeScript 程序中的版本 4.0.2。我创建了一个用 TypeScript 编写的简单 Node.js 程序的精简示例,该程序使用 BigNumber 来解决此问题 https://github.com/naddison36/node-imports

我真的很难让 TypeScript 2.3.4 提取 BigNumber 的类型定义。有谁知道如何做到这一点?这是我迄今为止尝试过的https://github.com/naddison36/node-imports#attempts-to-get-the-bignumber-type-definitions-to-work

理想情况下,我想简单地运行npm install bignumber.js --savenpm install @types/bignumber.js --save,使用ES6导入,例如从“bignumber.js”导入 BigNumber 并让 TypeScript 正常工作。

如有任何帮助,我们将不胜感激

最佳答案

导入样式

import BigNumber from 'bignumber.js';

仅当库指定了默认导出时才有效,正如您在 github 存储库中所注意到的那样。

Changing line 10 from export = BigNumber; to export default BigNumber; fixes the above error but introduces the following error:

Error:(6, 15) TS2709:Cannot use namespace 'BigNumber' as a type.

这是因为 bignumber.js 的类型是使用 namespace 声明的,而不是 module。我不确定您是否可以按原样解决打字问题,但请更改它们以便开始

export default BigNumber;
declare module 'bignumber.js' {
var BigNumber: BigNumberStatic;

而不是

declare var BigNumber: BigNumber.BigNumberStatic;

export as namespace BigNumber;
export = BigNumber;

declare namespace BigNumber {

在 bignumber.js 的所有正常导入中对我来说效果很好

import * as b from 'bignumber.js'
new b.BigNumber(123)

import b from 'bignumber.js'
new b(123)

import {BigNumber} from 'bignumber.js'
new BigNumber(123)

关于node.js - BigNumber 的 TypeScript 类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605322/

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