首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript型BigNumber定义

TypeScript型BigNumber定义
EN

Stack Overflow用户
提问于 2017-06-17 13:42:39
回答 2查看 14.4K关注 0票数 1

我试图在一个BigNumber程序中使用TypeScript版本4.0.2。我已经创建了一个用TypeScript编写的简单TypeScript程序的简化示例,它使用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导入(如import BigNumber from 'bignumber.js' ),并让TypeScript只工作。

如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-17 18:52:59

进口风格

代码语言:javascript
复制
import BigNumber from 'bignumber.js';

只有当库指定默认导出时才能工作,但正如您在github存储库中所注意到的那样。

将第10行从export =BigNumber中更改;以导出默认的BigNumber;修复上述错误,但引入以下错误: 错误:(6,15) as 2709:不能使用命名空间'BigNumber‘作为类型。

这是因为bignumber.js的类型是使用namespace而不是module来声明的。我不确定你是否能按原样处理这些类型,但要改变它们,这样就开始了。

代码语言:javascript
复制
export default BigNumber;
declare module 'bignumber.js' {
var BigNumber: BigNumberStatic;

而不是

代码语言:javascript
复制
declare var BigNumber: BigNumber.BigNumberStatic;

export as namespace BigNumber;
export = BigNumber;

declare namespace BigNumber {

在所有正常的bignumber.js导入中,我都很好。

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2017-06-17 14:16:23

因此,这样做似乎是可行的:

代码语言:javascript
复制
import * as BigNumber from 'bignumber.js';
const result: BigNumber.BigNumber = new BigNumber(2);

可能的解释:

类型声明一个变量和一个命名空间,它们都名为BigNumber

代码语言:javascript
复制
declare var BigNumber: BigNumber.BigNumberStatic;
export as namespace BigNumber;

在导入代码中,导入的* as BigNumber引用的是名称空间,而new BigNumber中的引用的是声明的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44605322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档