当没有为该单个值定义类型时,如何从库中导入
How can I import from a library when there is no type defined for that single value
我正在开发一个使用组件库的项目,该组件库使用 react-spring。我无法控制组件库,因此我无法控制它使用 react-spring v8
我在 PR 上找到了 comment,它告诉我如何在测试环境中 运行 时修复动画。它要求我导入 Globals
对象。当我尝试通过 import { Globals }
这样做时,我收到错误消息 Module '"react-spring"' has no exported member 'Globals'.ts(2305)
,因为我的项目正在使用 Typescript(其中的说明适用于 JS)
当我查看 node_modules 目录中的 react-spring 代码时,我可以看到 Globals
对象肯定在主代码和模块代码中都导出了.
web.js(主要):
export { apply, config, update, extendedAnimated as animated, extendedAnimated as a, interpolate as interpolate, Globals, useSpring, useTrail, useTransition, useChain, useSprings };
web.cjs.js(模块):
exports.Globals = Globals;
然而,当我查看 types provide by react-spring 时,Globals
没有任何内容,我担心这就是导致我无法导入 Globals 以便我可以提供模拟的原因requestAnimationFrame 在测试期间按照指示进行。
我是 Typescript 的新手,所以我可能误解了一些东西,我已经尝试 Google 解决方案,但我几乎只能找出如何处理一个根本没有类型的库,但没有关于如何修复库提供的类型中的“漏洞”的任何内容。
这里是一个 CodeSandbox,它表现出同样的错误(一定是在编辑沙箱。在预览模式下不显示。
这看起来像是 react-spring@8
中的 Typescript 错误,因为是的,Globals
已导出。如果您有兴趣针对 v8 分支进行 PR,我们可以发布此修复程序。
如果您想立即修复,可以添加:
declare module "react-spring" {
interface Globals {
injectFrame: () => void;
}
export const Globals: Globals;
}
通常到 *.d.ts
文件或您需要的地方。这将为您提供所需的功能,您可以在需要的地方继续添加更多功能。否则你可以使用 // @ts-expect-error
来消除错误。
这是演示分辨率的沙箱 – https://codesandbox.io/s/admiring-frog-5enu2?file=/src/App.tsx
我正在开发一个使用组件库的项目,该组件库使用 react-spring。我无法控制组件库,因此我无法控制它使用 react-spring v8
我在 PR 上找到了 comment,它告诉我如何在测试环境中 运行 时修复动画。它要求我导入 Globals
对象。当我尝试通过 import { Globals }
这样做时,我收到错误消息 Module '"react-spring"' has no exported member 'Globals'.ts(2305)
,因为我的项目正在使用 Typescript(其中的说明适用于 JS)
当我查看 node_modules 目录中的 react-spring 代码时,我可以看到 Globals
对象肯定在主代码和模块代码中都导出了.
web.js(主要):
export { apply, config, update, extendedAnimated as animated, extendedAnimated as a, interpolate as interpolate, Globals, useSpring, useTrail, useTransition, useChain, useSprings };
web.cjs.js(模块):
exports.Globals = Globals;
然而,当我查看 types provide by react-spring 时,Globals
没有任何内容,我担心这就是导致我无法导入 Globals 以便我可以提供模拟的原因requestAnimationFrame 在测试期间按照指示进行。
我是 Typescript 的新手,所以我可能误解了一些东西,我已经尝试 Google 解决方案,但我几乎只能找出如何处理一个根本没有类型的库,但没有关于如何修复库提供的类型中的“漏洞”的任何内容。
这里是一个 CodeSandbox,它表现出同样的错误(一定是在编辑沙箱。在预览模式下不显示。
这看起来像是 react-spring@8
中的 Typescript 错误,因为是的,Globals
已导出。如果您有兴趣针对 v8 分支进行 PR,我们可以发布此修复程序。
如果您想立即修复,可以添加:
declare module "react-spring" {
interface Globals {
injectFrame: () => void;
}
export const Globals: Globals;
}
通常到 *.d.ts
文件或您需要的地方。这将为您提供所需的功能,您可以在需要的地方继续添加更多功能。否则你可以使用 // @ts-expect-error
来消除错误。
这是演示分辨率的沙箱 – https://codesandbox.io/s/admiring-frog-5enu2?file=/src/App.tsx