Definitelytyped: [@types/react-redux] 'hoist-non-react-statics' 没有导出成员 'NonReactStatics'

创建于 2019-03-07  ·  84评论  ·  资料来源: DefinitelyTyped/DefinitelyTyped

  • [x] 我尝试使用@types/react-redux包但遇到了问题。
  • [x] 我尝试使用最新的稳定版 tsc。 https://www.npmjs.com/package/typescript
  • [x] 我有一个不适合StackOverflow 的问题。 (请在那里提出任何适当的问题)。
  • [x] [提及](https://github.com/blog/821-mention-somebody-they-re-notified) 作者(见Definitions by:中的index.d.ts )所以他们可以回应。

@jamesreggio @JounQin

@types/react-redux 7.0.1@types/react-redux 7.0.2会出现以下错误:

'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.

47 import { NonReactStatics } from 'hoist-non-react-statics';

似乎是在这里介绍的: https :

最有用的评论

我可能是错的,但我认为问题可能更简单,

import { NonReactStatics } from 'hoist-non-react-statics';

应该

import NonReactStatics from 'hoist-non-react-statics';

降级到@types/react-redux 7.0.1 是一个快速修复,直到它被修复。

所有84条评论

哎呀。 我在该更改中引入了对@types/hoist-non-react-statics的依赖,但我没有将其添加为依赖。 这个问题是,我不确定在哪里将它声明为依赖项,因为类型只依赖于类型。

@JounQin ,你能帮我了解如何解决这个问题吗? 我们是否需要添加///<reference或向package.json添加一些东西?

作为临时解决方法,您可以将npm install --dev @types/hoist-non-react-statics用于您的项目。

我可能是错的,但我认为问题可能更简单,

import { NonReactStatics } from 'hoist-non-react-statics';

应该

import NonReactStatics from 'hoist-non-react-statics';

降级到@types/react-redux 7.0.1 是一个快速修复,直到它被修复。

我今天也遇到了这个问题。 降级到 7.0.1 有帮助

同样在这里。

哎呀。 我在该更改中引入了对@types/hoist-non-react-statics的依赖,但我没有将其添加为依赖

肯定类型自动添加@types/hoist-non-react-statics作为对@types/react-redux的依赖,但是(显然)这还不足以让您的打字工作。

作为临时解决方法,您可以将npm install --dev @types/hoist-non-react-statics用于您的项目。

不,这不会起作用,因为这个依赖项已经由绝对类型自动添加,但是对于 TS 来说,正确处理您的类型是不够的。

我猜问题是 TS 不知道hoist-non-react-statics模块的存在,因为hoist-react-statics包本身不存在于 node_modules 中(很遗憾 TS 无法从@types/hoist-non-react-statics派生模块存在手动安装hoist-non-react-statics确实可以使您的打字正常工作这一事实证实了这一假设。

所以, @jamesreggio我想你必须添加hoist-non-react-statics包作为@types/react-reduxpackage.json依赖才能解决这个问题。

@surgeboris更新到 7.0.3 并添加了[email protected]@types/[email protected] ,修复了一个问题

该修复程序对我不起作用。 也许我做错了什么。 使用纱线 1.13

好的,谢谢大家的耐心等待。

我想出了一个修复程序并打开了一个 PR:#33919。

显然,如果您使用 Node 风格的类型定义导出(使用export = ),正确的导入方法是使用import [name] = require([package name]) 。 我不太熟悉这些导入/导出模式的细微差别,我只是模糊地更有信心我现在理解它了😆

希望 DefinitielyTyped 的维护者可以尽快合并和发布。 再次为回归感到抱歉。

不幸的是,即使最近发布的7.0.4也没有解决我的问题

看起来仍然缺少对@types/hoist-non-react-statics的显式依赖。

实际上,不 - 一个新的npm i @types/react-redux安装了@types/hoist-non-react-statics 。 我看不出有什么问题?

是的,依赖项肯定列在它的package.json

  "dependencies": {
    "@types/hoist-non-react-statics": "*",
    "@types/react": "*",
    "redux": "^4.0.0"
  },

如果你们仍然有问题,你应该仔细检查所有东西的正确版本已经安装。

(具体来说,依赖项被列为* ,所以你可能有一个旧版本的@types/hoist-non-react-statics ,它可能缺少npm视为满足依赖项的类型?)

所以,这个问题有点微妙。

hoist-non-react-statics包包括它自己的超基本类型,从v2.2.0v3.0.0 ,并且如果在您的项目中解析的hoist-non-react-statics版本根在那个范围,您会遇到此错误,因为包本地类型优先于@types/hoist-non-react-statics

有两种直接的解决方法:

  1. hoist-non-react-statics@^3.3.0作为依赖项添加到您的项目中。
  2. 如果使用纱线,请为您的package.json添加分辨率覆盖,如下所示:
    "resolutions": { "hoist-non-react-statics": "^3.3.0" }

这些都不是最佳的,因为大多数开发人员(理所当然地)首先不知道hoist-non-react-statics的存在。

我真的不知道最佳的办法是这里的东西,但我怀疑,如果我们可以列出一个具体versionspec为@types/hoist-non-react-statics内的package.json@types/react-redux ,我们可以减轻影响。

@weswigham - 你知道是否可以用*替换自动生成的依赖项,并将@types/hoist-non-react-statics依赖项替换>=3.3.0吗?

@weswigham——你知道是否有可能将自动生成的依赖替换为 * 依赖于 @types/hoist-non-react-statics >=3.3.0?

如果您明确将其添加到package.json它可能会起作用吗? AFAIK 你不能为隐含或基于路径映射的依赖项硬编码版本,但我可能是错的。

@sandersn知道更多吗?

我刚刚打开了一个 PR,其中包含package.json特定版本的@types/hoist-non-react-statics package.json 。 希望这有效吗? 当然伤不起。

@weswigham ,你介意审查和批准吗?

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979

我不知道这是否是正确的修复。 我添加了对hoist-non-react-statics@latest的直接依赖,它解决了所有问题。

@sandersn — 我不知道该怎么做。 Travis 构建失败,因为我为@types/hoist-non-react-statics添加了特定的版本规范。 请参阅此处的错误。

确实,我更改为@types/react-redux _requires_ @types/hoist-non-react-statics的最小值为 3.3.0,所以我觉得我应该能够表达该约束。 你能帮我理解如何做到这一点吗? (我应该按照错误消息说的那样做,然后将它添加到dependenciesWhitelist.txt中的types-publisher吗?这看起来太大了。)

这不是一个太大的锤子 - 您的问题几乎与日志消息所描述的完全相同(除了我们还再次切换回基础包而不是运输类型,相当传奇)。

酷,我有一个 PR 准备合并types-publisherhttps :

@weswigham - 你能降落吗?

它于太平洋夏令时间 3:06 发布(在此评论前 40 分钟左右)。

好的,伙计们,试试@types/[email protected] ,如果您仍然崩溃,请告诉我。

@types/[email protected]仍然存在同样的问题。 唯一对我有用的修复方法是在我的项目中手动要求hoist-non-react-statics

附议,在@types/ 7.0.5 中仍然被破坏

@jamesreggio @weswigham我不确定你是否看到了评论,但给你发了 ping,所以我们确定你已经看到了

是的,谢谢,我有。 今天下午我在 Cisco 教 React 时,这有点上课。 快速检查后,我找到了这个线程,我将它们恢复到 7.0.1,并且运行正常。 但是,我有一些轻微的怪异。 如果我添加 hoist-non-react-statics 它会起作用,如上所述。 如果我卸载 hoist-non-react-statics,它会继续工作。 所以也许有一个真正的依赖在那里被拾取,但即使你删除了那个包,它仍然存在。 如果我清除 node_modules 和 package-lock.json 并在没有提升的情况下重新安装,它又会坏掉。 我现在必须离开这里,所以我现在不能再花时间去深入挖掘了。 无论如何,其他人可能会发现它更快,但与包装更一致。

明天我将再次深入研究,但老实说,我需要一些帮助
来自专家。 TS 模块系统的复杂性让我感到困惑。 我觉得
就像我在这里做的一切都正确......

你们中遇到问题的人可以粘贴您的要点吗?
package-lock.json 还是 yarn.lock? 我觉得这可能是一个相关的问题
对于 hoist-non-react-statics 包含它自己的类型这一不寻常的事实
在过去的短时间内。

在星期四,2019年3月21日在20:03乔尔Mussman酒店[email protected]写道:

是的,谢谢,我有。 今天下午我在 Cisco 教 React 的时候
位班级。 快速检查后,我找到了这个线程,我把它们拿回来了
降到 7.0.1,它工作正常。 但是,我有一些轻微的怪异。 如果我添加
hoist-non-react-statics 它的工作原理,如上所述。 如果我卸载
hoist-non-react-statics 它继续工作。 所以也许有一个真正的
在那里得到的依赖,但即使你删除它仍然存在
那个包裹。 如果我清除 node_modules 和 package-lock.json 和
不用起重器重新安装,它又坏了。 我现在必须离开这里
所以我现在不能再花时间去深入挖掘了。
无论如何,其他人可能会发现它更快
包裹。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877
或静音线程
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.

这是我的package-lock.jsonhttps :

嗨,詹姆斯,

好的,我明白我的课堂项目出了什么问题。 我还不知道如何修复它。 但是,我将把我所知道的说出来,也许绝对类型的人可能会帮助你。

react-router 是上一个实验室在 react-redux 之前安装的。 react-router 的当前版本(直到 4 天前)是 4.3.1,并且依赖于[email protected] 因此,根据规则,因为没有其他人对 hoist-non-react-statics 有任何依赖,所以该软件包安装在 node_modules 的顶层。 现在[email protected]已安装。 这取决于[email protected] 但是,由于 2.2.5 已经处于顶层,因此它将 3.3.0 放在 react-redux 下的 node_modules 文件夹中。 所以看起来@types/react-redux 的@types/ hoist - statics @

前面描述的其他人的问题可能与这种情况非常相似。

相关问题:我们如何知道@types/react-redux 的哪个版本映射到 react-redux 的哪个版本? 由于数字不对齐,我迷路了。

我已经做了一个 PR 来解决这个问题 #34090

这个问题不应该重新打开,因为 7.0.5 版本还没有解决潜在的问题吗?
(不向 devDependencies 添加 @types/hoist-non-react-statics + hoist-non-react-statics)

100% 同意这不应该关闭,除非您手动添加到 devDependencies,否则仍然会损坏

我已经提交了自开始以来这里的人们似乎忽略的正确修复:#34406

那么现在 PR 被合并了,react-redux 类型必须更新对 hoist-non-react-statics 的依赖?

我想是这样。 但我认为您可以通过删除依赖项(卸载它)并重新添加它来逃脱


来自:莫里斯通知@github.com
发送时间:2019 年 4 月 4 日星期四下午 3:53:32
至:绝对类型化/绝对类型化
抄送:wolfy1339; 手动的
主题:回复:[DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' 没有导出成员 'NonReactStatics' (#33690)

那么现在 PR 被合并了,react-redux 类型必须更新对 hoist-non-react-statics 的依赖?


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在 GitHub 上查看https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 ,或将帖子静音https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrU42X3JUksv1ZrU42X3JUksv1ZrU42X3JUksv1

你是说 react-redux 类型? 我会试试的。

@wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406似乎没有为我解决这个问题。 我认为这是因为hoist-non-react-statics将安装在@types/hoist-non-react-statics ( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics ) 内,所以 TS 仍然使用我的根版本 ( node_modules/hoist-non-react-statics ) 中的类型。

在这一点上,值得一试。 还有人有想法吗?

@weswigham你能重新打开这个问题吗?

有类似的问题 - 使用 yarn 而不是 npm 来安装依赖项解决了我的问题。 作为旁注发布,因为也许你们可以尝试一下作为解决方法。

@alan-mroczek 我们使用纱线所以没有这没有帮助。 这里一定有别的东西在起作用。 (锁定文件?)

我不知道我是否理解确切的问题,但对我有用的纱线解决方案是向 package.json 添加一个分辨率字段。

"resolutions": {
  "hoist-non-react-statics": ">=3.3.0"
}

此问题对于"@types/react-redux": "7.0.8",仍然有效,并且设置“分辨率”不是通用解决方案,因为“分辨率”在 monorepo(纱线工作区)中不起作用

无论如何,我不希望它成为解决方案。 我认为安装后的@types包应该“正常工作”

解决这整个考验的方法是将其添加为对等依赖项吗? 当然这不是万无一失的,但这是保证打字稿找到所需依赖项的唯一方法

获取 Outlook for Android https://aka.ms/ghei36


来自:莫里斯通知@github.com
发送时间:2019 年 4 月 29 日星期一 12:30:06 PM
至:绝对类型化/绝对类型化
抄送:wolfy1339; 提到
主题:回复:[DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' 没有导出成员 'NonReactStatics' (#33690)

无论如何,我不希望它成为解决方案。 在我看来,@types https://github.com/types包安装后应该“正常工作”


你收到这个是因为你被提到了。
直接回复本邮件,在 GitHub 上查看https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 ,或将线程静音https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHATFLPSQ4G5AVM

尝试了很多东西,降级到@types/react-redux 7.0.1 仍然是目前唯一有效的修复方法。

我也一样 ! 但我希望有一天能真正修复(保持这种过时的依赖是奇怪的!)。

我认为我们需要在 react-redux 类型中做与 #34406 相同的事情,只需添加对hoist-non-react-statics的直接依赖,因为 NPM 和 Yarn 不一定会放置“正确”版本的hoist-non-react-statics上面目录中的@types/react-redux (如果有的话,会导致TS抓取v2.5的内置index.d.ts

这是一个非常粗糙的解决方案(如果 TypeScript 允许我们直接导入@types/hoist-non-react-statics/index.d.ts ,理论上可以减轻,但我没有看到任何合理的替代方案(基本上任何其他依赖@types/hoist-non-react-statics将需要做同样的事情)

我认为我们需要在 react-redux 类型中做与 #34406 相同的事情,只需添加对hoist-non-react-statics的直接依赖,因为 NPM 和 Yarn 不一定会放置“正确”版本的hoist-non-react-statics上面目录中的@types/react-redux (如果有的话,会导致TS抓取v2.5的内置index.d.ts

这是一个非常粗糙的解决方案(如果 TypeScript 允许我们直接导入@types/hoist-non-react-statics/index.d.ts ,理论上可以减轻,但我没有看到任何合理的替代方案(基本上任何其他依赖@types/hoist-non-react-statics将需要做同样的事情)

从'../hoist-non-react-statics'导入怎么样?
据我所知,安装 '@types/react-redux' 时会自动安装包 '@types/hoist-non-react-statics',因此应该没有丢失它的风险。
我附加了 2 个文件以显示适合我的解决方案。

提升非反应-statics_index.d.txt
react-redux_index.d.txt

鉴于 npm 的工作方式,我们不能保证hoist-non-react-statics将位于react-redux的同级目录中。 根据用户安装的其他依赖项,它可能是祖父母,也可能是孩子。

这对我来说仍然是坏的。 我的export default connect()(MyComponent)被赋予了any类型。 回到7.0.1修复了这部分......这似乎是7.0.2

7.1.0仍然会发生,降级到7.0.1对我们来说不是一个选择,因为我们需要 TS 3.5.2 (使用 TS 3.4.57.0.1确实有效)并且会引发以下错误7.0.1

node_modules/@types/react-redux/index.d.ts:109:84 - error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.

那么,任何..解决方法? 我不是这方面的专家,所以我不明白我需要做什么。

@tsakalidiskostas

好吧,我们决定将react-redux类型的修改版本提交到我们的回购中。 (在决定不使用patch-package 之后。如果您不介意必要的纱线解决方法,这可以是一个不错的临时解决方案。)

我们只需更改以下行:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {

到:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {

由于我们不使用静态,它不会伤害我们,但这当然不是每个人都可以接受的解决方案。

凉爽的! 我同意@alessioprestileo的改变建议

import hoistNonReactStatics = require('hoist-non-react-statics');

为了

import { NonReactStatics } from '../hoist-non-react-statics';

并将呼叫更改为

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {

它也对我有用,当我看到你的答案时,实际上只是去更新:D

那么您会在 npm 中发布带有修复程序的新版本吗?:)

我们可以让 hoist-non-react-statics 的维护者将类型检查回他们的 repo 吗?

所以..这是发生了还是我应该继续改变它?

你好呀。 我们还使用react-redux更新到@types/react-redux的最新7.1.1版本: 7.1.0 ,我们在 npm 中看到了这个错误。 我很困惑,因为所有与此相关的票都已关闭。
降级到7.0.1确实解决了这个问题,但如果我们使用最新的 Typescript 版本3.5.x会导致一个新问题:

/.../node_modules/@types/react-redux/index.d.ts(109,84): error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
    Type 'Matching<TInjectedProps, GetProps<C>>' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
      Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : TInjectedProps[P] : GetProps<C>[P]' is not assignable to type 'TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : never'.

使它成为一个有点悲伤的解决方法。

@types/react-redux的最新版本(即7.1.1不使用Shared<TInjectedProps, GetProps<C>>作为约束(正是因为 TS 中的修复指出约束不正确) - 我认为,您有另一个库强制嵌套包含旧版本的react-redux类型。

所以,我有解决方法。 它被称为“补丁包”。

如果你之前没有使用过补丁包,其实很简单! 您只需将它添加到您的配置中,npm 安装它,然后您只需在已修复且正在运行的已更改模块上点击补丁包命令,瞧。 现在你有几个模块驻留在补丁包下,这些模块只有你正在修复的模块的更改文件,没有什么太花哨或太大等。错误已修复,依赖项不会丢失,所以当/如果他们修复您可以轻松删除一两个文件,一切都很好

我可以确认安装hoist-non-react-statics可以解决react-redux 7.1.0 和@types/react-redux 7.1.1 的这个错误我也在使用 Typescript 3.4.3。

但是,我不知道为什么此问题已关闭。 有没有更合理的解决方案,而不必修补程序包或覆盖模块分辨率树?

我和@jalMogo有同样的问题

还是看到这个问题。

@jalMogo据我所知,这不是 redux 的问题,而是 hoist-non-react-

我不同意这是 hoist-non-react-statics 的问题。 这是 redux 描述的一个问题,因为它最终会查看 hoist-non-react-statics 的旧版本和错误版本,如果它存在于 node_modules 树中,当安装了路由器等其他东西时它会这样做. 需要正确描述依赖关系,并在 node_modules 树中正确安装新版本。

这仍然是一个问题。

+1

我仍然遇到这个问题,并且 lint 说代码中有错误。 有没有人还在研究这个,或者它被认为是关闭的? 我安装了所有最新版本,但仍然得到:

命名空间 '"/home/myhome/Projects/node_modules/hoist-non-react-statics/index"' 没有导出成员 'NonReactStatics'.ts(2694)

这绝对是他们的问题。 解决方法: @types/hoist-non-react-statics应该在您的项目中列为依赖项,才能使其正常工作

但我有那个,但仍然有问题:
“依赖关系”:{
...
"@types/hoist-non-react-statics": "^3.3.1",

在我的 package.json 中

我的错。 你需要hoist-non-react-statics


发件人:Robert Rehammar [email protected]
发送:2019 年 10 月 20 日,星期日 1:50:51 AM
致:DefinitelyTyped/DefinitelyTyped [email protected]
抄送:wolfy1339 [email protected] ; 提及[email protected]
主题:回复:[DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' 没有导出成员 'NonReactStatics' (#33690)

但我有那个,但仍然有问题:
“依赖关系”:{
...
"@types/hoist-non-react-statics": "^3.3.1",

在我的 package.json 中


你收到这个是因为你被提到了。
回复此电子邮件直接,查看它在GitHub上https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690?email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 ,或退订https://github.com/notifications/unsubscribe-身份验证/ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ

我的依赖项中有"hoist-non-react-statics": "^3.3.0" ,devDependencies 中有"@types/hoist-non-react-statics": "^3.3.1" ,我自己也有这个问题。 我已经确认没有其他库也在使用这些旧版本。

我也试过没有明确安装"@types/hoist-non-react-statics" (因为据我所知,主包应该已经包含了类型),但结果相同。

遇到此问题的任何人都应提供可运行的复制,否则我们无法提供任何帮助。

对不起,我遇到的这个项目不是开源的,我没有时间创建一个单独的项目来展示它。 然而,我注意到的是,在我在tsconfig.json启用allowJs: true之前,该项目没有问题。 没有这个设置,一切仍然正常。 希望能帮助到你。

添加 'hoist-non-react-statics' 似乎在这里修复了它。

repro 只是安装@types/react-redux,然后在 tsx 文件中导入 react-redux 中的任何内容。

解决此问题的一种方法是在 tsconfig.json 中添加 "skipLibCheck": true。 这不是最好的解决方案,但作为一种解决方法,可以使用它。

我认为这是因为打字稿按以下顺序解决问题:

  1. package/package.json[types]
  2. @types/package
  3. package (除了types字段之外的所有内容)

为什么会这样对我来说是个谜,但它记录在这里: https: //www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules

例如,如果您有以下目录结构:

node_modules/
  @types/
    hoist-non-react-statics/ (3.3.0)
    react-redux/
      node_modules/
        hoist-non-react-statics/ (3.3.0)

  hoist-non-react-statics/
    package.json (2.0, which has a types field!!!)
    index.d.ts

然后打字稿将执行以下操作:

  1. 无法从node_modules/@types/react-redux/node_modules/hoist-non-react-statics获取类型,因为当前版本不包含类型
  2. 成功从node_modules/hoist-non-react-statics (旧版本)中找到类型,因为它的package.json有一个types字段

因此,正如其他人所提到的,您可以通过在最新的hoist-non-react-statics项目中添加依赖项来解决该问题,因为在package.json中没有types字段,所以它使第 2 步失败。

具有讽刺意味的是,您还可以通过在旧的hoist-non-react-statics项目中添加依赖项来修复它,例如 3.0.0。 这是有效的,因为它强制将正确的版本 (3.3.0) 安装在node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics ,之前已解决:confounded:

所以我有两个问题:

  1. 为什么打字稿会这样特殊对待types字段,它在@types包之前还是之后取决于是否使用types字段?
  2. 如果hoist-non-react-statics曾经内置类型,为什么他们会叛变到这里? 如果类型内置在包中,这不会成为问题。 我看不到 yarn/NPM 如何正确处理代码和类型的单独包,因为他们不知道这两者是如何连接的。

这个问题似乎在最新的软件包版本中重新出现,即:

[email protected]
@types/[email protected]

我能够通过在package.json手动包含以下包来解决此问题:

[email protected]
@types/[email protected]

因为在我最初的npm install之后的hoist-non-react-statics包中,我的node_modules文件夹中有这些包的重复项。 运行npm dedupe清除了这一点。

希望可以帮助到其他任何人!

我也有这个问题 - 赞美@DannyDelott的解决方案!

我也有这个问题 - 赞美@DannyDelott的解决方案!

现在最快的解决方案是删除@types/react-redux ,而不用直接需要的依赖项污染package.json @types/react-redux

npm remove @types/react-redux

一旦我们看到这个问题已经解决,那么我们就可以把它放回去

问题仍在发生,解决此问题的唯一方法是将上述依赖项添加到您的项目中。 不过,这并不理想,所以希望我们能尽快得到修复!

还在关注这个问题。

对于任何愿意在稳定修复程序上线时继续开发的人,您可以使用下面的 typedef:

// [your-src-folder]/types/hoist-non-react-statics.d.ts

declare module 'hoist-non-react-statics' {
  type NonReactStatics<T> = any;
  export { NonReactStatics }
}

这不是理想的解决方案,但至少对于避免 TS 的构建错误很有用

此页面是否有帮助?
0 / 5 - 0 等级