【发布时间】:2020-09-06 08:33:28
【问题描述】:
我正在开发一个使用本机 BigInts 的打字稿库。它在 chrome 中运行良好,但在 Safari 中却不行。所以我遇到了处理这个问题的jsbi“polyfill”。
但由于某种原因,我无法正确导入库。
我第一次尝试这样导入:
import JSBI from 'jsbi'
类型是正确的,但在运行时 JSBI 是未定义的,我不能调用它的任何方法。 (例如TypeError: Cannot read property 'subtract' of undefined)
所以我尝试这样做:
import * as JSBI from 'jsbi'
但是它甚至无法编译,我收到各种错误,例如Cannot use namespace 'JSBI' as a type.。我也尝试访问JSBI.JSBI.subtract 之类的方法,但随后出现错误Property 'JSBI' does not exist on type 'typeof import("/project/node_modules/jsbi/jsbi")'.
我让它工作的唯一方法是使用以下导入:
import * as JSBI from 'jsbi/dist/jsbi-umd.js'
这确实有效。 JSBI 是在运行时定义的,我可以访问它的方法。但是,它仅在禁用严格模式时才有效。当我启用它时,我得到了错误
error TS7016: Could not find a declaration file for module 'jsbi/dist/jsbi-umd.js'.
'/project/node_modules/jsbi/dist/jsbi-umd.js' implicitly has an 'any' type.
Try `npm install @types/jsbi` if it exists or add a new declaration (.d.ts) file containing `declare module 'jsbi/dist/jsbi-umd.js';`
我尝试将我自己的 .d.ts 模块声明为临时修复,但它也不起作用。
我错过了什么吗?
【问题讨论】:
-
这个问题你解决了吗?
-
我想我们最终使用了另一个库。
-
我想我找到了解决这个问题的方法(通过使用
require而不是import或类似的东西)但它仍然有一些烦人的问题,最后我已经解决了本机 bigint。 -
这个问题你解决了吗?
标签: javascript typescript bigint