@types/react-redux
e tive problemas.Definitions by:
em index.d.ts
) para que eles possam responder.@jamesreggio @JounQin
atualizar de @types/react-redux 7.0.1
para @types/react-redux 7.0.2
dá o seguinte erro:
'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.
47 import { NonReactStatics } from 'hoist-non-react-statics';
parece que foi introduzido aqui: https://github.com/DefinitelyTyped/DefinitelyTyped/commit/8b1beff944f6c7bf913b6fcee31fb5f7129064a7
Caramba. Eu introduzi uma dependência de @types/hoist-non-react-statics
nessa mudança, mas não a adicionei como uma dependência. Este problema é que não tenho certeza de onde declará-lo como uma dependência, uma vez que os tipos dependem apenas dos tipos.
@JounQin , você pode me ajudar a entender como consertar isso. Precisamos adicionar ///<reference
ou adicionar algo a package.json
?
Como solução temporária, você pode npm install --dev @types/hoist-non-react-statics
para o seu projeto.
Posso estar errado, mas acho que o problema talvez seja mais simples,
import { NonReactStatics } from 'hoist-non-react-statics';
deveria estar
import NonReactStatics from 'hoist-non-react-statics';
fazer o downgrade para @ types / react-redux 7.0.1 é uma solução rápida até que isso seja corrigido.
Eu tenho esse problema hoje também. O downgrade para 7.0.1 ajudou
Mesmo aqui.
Caramba. Eu introduzi uma dependência de
@types/hoist-non-react-statics
nessa mudança, mas não a adicionei como uma dependência
DefinitelyTyped adicionou automaticamente @types/hoist-non-react-statics
como uma dependência de @types/react-redux
, mas (aparentemente) isso não foi suficiente para que suas digitações funcionassem.
Como solução temporária, você pode
npm install --dev @types/hoist-non-react-statics
para o seu projeto.
Não, isso não funcionará porque esta dependência já foi adicionada automaticamente pelo DefinitelyTyped, mas não é suficiente para o TS tratar suas digitações corretamente.
Eu acho que o problema é que o TS não está ciente da existência do módulo hoist-non-react-statics
, já que hoist-react-statics
próprio pacote não está presente em node_modules (é uma pena que o TS não pode derivar o módulo existente desde @types/hoist-non-react-statics
pacote, embora possa haver uma razão válida para tal comportamento, por exemplo, compatibilidade). Esta hipótese é confirmada pelo fato de que a instalação manual de hoist-non-react-statics
faz com que suas digitações funcionem corretamente .
Então, @jamesreggio , acho que você tem que adicionar hoist-non-react-statics
pacote como uma dependência ao package.json
de @types/react-redux
para corrigir este problema.
@surgeboris atualizado para 7.0.3 e adicionado [email protected]
e @types/[email protected]
, corrigiu um problema
A correção realmente não está funcionando para mim. Talvez eu esteja fazendo algo errado. Usando fio 1.13
Ok pessoal, obrigado pela paciência.
Eu descobri uma solução e abri um PR: # 33919.
Aparentemente, se você usar a exportação de definição de tipo de estilo de nó (com export =
), a maneira correta de importar é com import [name] = require([package name])
. Não estou familiarizado com as nuances desses padrões de importação / exportação e estou apenas vagamente mais confiante de que entendi agora 😆
Esperançosamente, os mantenedores do DefinitielyTyped podem fazer a fusão e lançar o mais rápido possível. Desculpe novamente pela regressão.
Infelizmente, mesmo com 7.0.4
que foi lançado recentemente, isso não resolveu o problema para mim
Parece que a dependência explícita de @types/hoist-non-react-statics
ainda está faltando.
na verdade, não - um novo npm i @types/react-redux
instalado @types/hoist-non-react-statics
. Não vejo nenhum problema?
Sim, a dependência está definitivamente listada em seu package.json
:
"dependencies": {
"@types/hoist-non-react-statics": "*",
"@types/react": "*",
"redux": "^4.0.0"
},
Se vocês ainda estão tendo problemas, você deve verificar se as versões corretas de tudo foi instalado.
(Especificamente, a dependência é listada como *
, então você pode ter uma versão mais antiga de @types/hoist-non-react-statics
que talvez esteja faltando o tipo que npm
conta como satisfazendo a dependência?)
Portanto, o problema tem algumas nuances.
O pacote hoist-non-react-statics
incluía suas próprias tipificações hiper-básicas de v2.2.0
até v3.0.0
, e se a versão de hoist-non-react-statics
que resolve em seu projeto enraíza-se nisso intervalo, você encontrará este erro, uma vez que as tipificações locais do pacote têm precedência sobre @types/hoist-non-react-statics
.
Existem duas soluções alternativas imediatas:
hoist-non-react-statics@^3.3.0
ao seu projeto como uma dependência.package.json
como tal:
"resolutions": {
"hoist-non-react-statics": "^3.3.0"
}
Nenhum deles é ótimo, porque a maioria dos desenvolvedores (com razão) não está ciente da existência de hoist-non-react-statics
em primeiro lugar.
Não tenho certeza de qual seria a abordagem ideal aqui, mas suspeito que se pudéssemos listar uma especificação de versão específica para @types/hoist-non-react-statics
dentro de package.json
para @types/react-redux
, nós poderia mitigar o impacto.
@weswigham - você sabe se é possível substituir a dependência *
por uma dependência de @types/hoist-non-react-statics
por >=3.3.0
?
@weswigham - você sabe se é possível substituir a dependência
Se você adicionar explicitamente em package.json
, pode funcionar? AFAIK, você não pode codificar versões para dependências implícitas ou baseadas em mapeamento de caminho, mas posso estar errado.
@sandersn sabe mais alguma coisa?
Acabei de abrir um PR que inclui uma versão específica de @types/hoist-non-react-statics
em package.json
. Esperançosamente isso funciona? Certamente não poderia machucar.
@weswigham , você se importa em revisar e aprovar?
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979
Não sei se essa é a solução correta. Eu adicionei uma dependência direta em hoist-non-react-statics@latest
e corrigiu todos os problemas.
Ugh, @weswigham + @sandersn - não tenho certeza do que fazer. A compilação do Travis falhou porque adicionei uma especificação de versão específica para @types/hoist-non-react-statics
. Veja o erro aqui .
É verdade que minha mudança para @types/react-redux
_requer_ um mínimo de 3.3.0 de @types/hoist-non-react-statics
, então eu sinto que devo ser capaz de expressar essa restrição. Você pode me ajudar a entender como fazer isso? (Devo fazer o que a mensagem de erro diz e adicioná-lo a dependenciesWhitelist.txt
em types-publisher
? Parece um martelo muito grande.)
Não é um martelo muito grande - seu problema é exatamente o que a mensagem de log descreve (exceto que, mais uma vez, voltamos ao pacote subjacente e não aos tipos de remessa, eis a saga).
Legal, eu tenho um PR pronto para mesclar em types-publisher
: https://github.com/Microsoft/types-publisher/pull/595
@weswigham - você pode pousar?
Foi publicado a partir de 3:06 PDT (cerca de 40 minutos antes deste comentário).
Certo pessoal, experimente @types/[email protected]
e me avise se ainda estiver quebrado.
Continua o mesmo problema com @types/[email protected]
. A única correção que funcionou para mim é exigir manualmente hoist-non-react-statics
em meu projeto
Secundado, ainda quebrado em @ types / [email protected].
@jamesreggio @weswigham Não tenho certeza se você viu os comentários, mas estou
Sim, obrigado, eu tinha. Eu estava ensinando React esta tarde na Cisco quando isso foi parte da aula. Depois de uma verificação rápida e encontrei este tópico, eu os baixei para 7.0.1 e funcionou bem. Mas, eu tenho uma pequena estranheza. Se eu adicionar a estática não-reativa, funciona, conforme descrito acima. Se eu desinstalar o hoist-non-react-statics, ele continuará a funcionar. Então, talvez haja uma dependência real que é detectada lá, mas permanece mesmo se você remover o pacote. Se eu limpar o node_modules e o package-lock.json e reinstalar sem o guindaste, ele está quebrado novamente. Tenho que sair daqui agora, então não posso perder mais tempo nisso agora, tentando cavar mais fundo. Outra pessoa pode achar mais rápido de qualquer forma estar mais em sintonia com o pacote.
Eu vou cavar novamente amanhã, mas honestamente, eu preciso de ajuda
de um especialista. As complexidades do sistema de módulo TS me confundem. eu sinto
como se eu tivesse feito tudo corretamente aqui ...
Aqueles de vocês que estão tendo problemas, por favor, colem um resumo do seu
package-lock.json ou yarn.lock? Eu sinto que isso pode ser um problema relacionado
ao fato incomum de que a estática de não reagir incluiu suas próprias tipificações
por um curto período no passado.
Na quinta-feira, 21 de março de 2019 às 20:03, Joel Mussman [email protected] escreveu:
Sim, obrigado, eu tinha. Eu estava ensinando React esta tarde na Cisco quando este
mordeu a classe. Depois de uma verificação rápida e encontrei este tópico, os recebi de volta
até 7.0.1 e funcionou bem. Mas, eu tenho uma pequena estranheza. Se eu adicionar
hoist-non-react-statics funciona, conforme descrito acima. Se eu desinstalar
hoist-non-react-statics continua a funcionar. Então, talvez haja um verdadeiro
dependência que fica lá, mas permanece mesmo se você remover
esse pacote. Se eu limpar node_modules e package-lock.json e
reinstalar sem talha, está quebrado novamente. Eu tenho que sair daqui agora,
então não posso perder mais tempo nisso agora, tentando cavar mais fundo.
Alguém pode achar mais rápido de qualquer forma estar mais em sintonia com o
pacote.-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.
Aqui está meu package-lock.json
: https://github.com/hellomouse/GNS/blob/greenkeeper/default/%40types/react-redux-7.0.5/dashboard/package-lock.json
Olá James,
OK, eu entendo o que há de errado no meu projeto de classe. Não sei como consertar ainda. Mas vou divulgar o que sei e talvez alguém da Definitely Typed possa ajudá-lo.
react-router é instalado antes de react-redux pelo laboratório anterior. A versão atual do react-router (até 4 dias atrás) era 4.3.1 e depende de [email protected]. Portanto, de acordo com as regras, uma vez que ninguém mais dependia de hoist-non-react-statics, o pacote foi instalado no nível superior de node_modules. Agora, [email protected] está instalado. Depende de [email protected]. Mas, como 2.2.5 já está no nível superior, ele coloca 3.3.0 na pasta node_modules UNDER react-redux. Portanto, parece que a dependência em @ types / react -redux de @ types /
Outros problemas de pessoal descritos anteriormente podem ser muito semelhantes a este cenário.
Questão relacionada: como podemos saber qual versão de @ types / react-redux mapeia para qual versão de react-redux? Já que os números não se alinham, estou perdida aí.
Fiz um PR para corrigir este problema # 34090
Este problema não deveria ser reaberto, visto que o problema subjacente ainda não foi corrigido com a versão 7.0.5?
(sem adicionar @ types / hoist-non-react-statics + hoist-non-react-statics às devDependencies)
100% concordam que isso não deve ser fechado, ainda está quebrado, a menos que você adicione manualmente a devDependancies
Apresentei a correção adequada que as pessoas aqui parecem ignorar desde o início: # 34406
Portanto, agora que o PR foi mesclado, os tipos react-redux precisam atualizar a dependência da estática com guincho-não-reação?
Eu penso que sim. Mas acho que você pode remover a dependência (desinstalá-la) e adicioná-la novamente
De: Maurice [email protected]
Enviado: quinta-feira, 4 de abril de 2019 15:53:32
Para: DefinitelyTyped / DefinitelyTyped
Cc: wolfy1339; Manual
Assunto: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / react-redux] 'hoist-non-react-statics' não exportou o membro 'NonReactStatics' (# 33690)
Portanto, agora que o PR foi mesclado, os tipos react-redux precisam atualizar a dependência da estática com guincho-não-reação?
-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 , ou desative o thread https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrU42jUxUxlv4JUx1g7_1ZrU42jUxUxlg1g7g1g7Mu8k4Zlg7g7MuZk4Zlg7Mc4ZkBu7MZ4ZkBuc7MZk4ZkB
Você quer dizer as tipificações react-redux? Vou tentar isso.
@ wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406 não pareceu resolver o problema para mim. Acho que é porque hoist-non-react-statics
será instalado dentro de @types/hoist-non-react-statics
( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics
), então o TS ainda usa os tipos da minha versão raiz ( node_modules/hoist-non-react-statics
).
Nesse ponto, valeu a pena tentar. Alguém mais tem uma ideia?
@weswigham Você pode reabrir este problema?
Tive um problema semelhante - usar yarn em vez de npm para instalar dependências resolveu meu problema. Postando como uma nota lateral, porque talvez vocês possam tentar como uma solução alternativa.
@ alan-mroczek Usamos fio, então não, isso não ajuda. Deve haver algo mais em jogo aqui. (arquivo de bloqueio?)
Não sei se entendi o problema exato, mas a solução que funcionou para mim com o yarn foi adicionar um campo de resoluções ao package.json.
"resolutions": {
"hoist-non-react-statics": ">=3.3.0"
}
Este problema ainda está ativo para "@types/react-redux": "7.0.8",
e definir "resoluções" não é uma solução universal porque "resoluções" não funcionam em monorepo (espaços de trabalho de fios)
E não espero que seja a solução de qualquer maneira. Na minha opinião, o pacote @types depois de instalado deve "simplesmente funcionar"
A solução para todo esse calvário seria adicioná-lo como uma dependência de pares? Claro que não é à prova de falhas, mas é a única maneira de garantir que o texto digitado encontre a dependência necessária
Obtenha o Outlook para Android https://aka.ms/ghei36
De: Maurice [email protected]
Enviado: segunda-feira, 29 de abril de 2019 12:30:06
Para: DefinitelyTyped / DefinitelyTyped
Cc: wolfy1339; Menção
Assunto: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / react-redux] 'hoist-non-react-statics' não exportou o membro 'NonReactStatics' (# 33690)
E não espero que seja a solução de qualquer maneira. Na minha opinião, o pacote @types https://github.com/types depois de instalado deve "simplesmente funcionar"
-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 ou desative o thread https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHATMFS4FLPS4PA .
Tentei muitas coisas, fazer o downgrade para @ types / react-redux 7.0.1 ainda é a única correção que funciona no momento.
O mesmo para mim ! Mas eu espero que uma solução real venha um dia (manter essa dependência desatualizada é estranho!).
Acho que precisamos fazer a mesma coisa que # 34406 nas tipificações react-redux, e apenas adicionar uma dependência direta em hoist-non-react-statics
, já que NPM e Yarn não vão necessariamente colocar a versão "correta" de hoist-non-react-statics
no diretório acima de @types/react-redux
(que fará com que o TS pegue o index.d.ts
integrado da v2.5 se estiver lá)
Esta é uma solução realmente complicada (e poderia teoricamente ser mitigada se o TypeScript nos permitisse importar @types/hoist-non-react-statics/index.d.ts
diretamente, mas não estou vendo nenhuma alternativa razoável (e basicamente qualquer outra pessoa que dependa de @types/hoist-non-react-statics
vai precisar fazer o mesmo)
Acho que precisamos fazer a mesma coisa que # 34406 nas tipificações react-redux, e apenas adicionar uma dependência direta em
hoist-non-react-statics
, já que NPM e Yarn não vão necessariamente colocar a versão "correta" dehoist-non-react-statics
no diretório acima de@types/react-redux
(que fará com que o TS pegue oindex.d.ts
integrado da v2.5 se estiver lá)Esta é uma solução realmente complicada (e poderia teoricamente ser mitigada se o TypeScript nos permitisse importar
@types/hoist-non-react-statics/index.d.ts
diretamente, mas não estou vendo nenhuma alternativa razoável (e basicamente qualquer outra pessoa que dependa de@types/hoist-non-react-statics
vai precisar fazer o mesmo)
Que tal importar de '../hoist-non-react-statics'?
Pelo que vejo, o pacote '@ types / hoist-non-react-statics' é instalado automaticamente quando '@ types / react-redux' é instalado, então não deve haver risco de que ele falhe.
Anexei 2 arquivos para mostrar uma solução que funciona para mim.
Dada a maneira como o npm funciona, não podemos garantir que as digitações de hoist-non-react-statics
estarão em um diretório irmão de react-redux
. Dependendo de quais outras dependências o usuário instalou, pode ser um avô ou uma criança.
Isso ainda está quebrado para mim. Meu export default connect()(MyComponent)
recebeu um tipo any
. Voltar para 7.0.1
corrige esta parte ... Isso parece ser uma mudança em 7.0.2
.
Ainda acontece com 7.1.0
e rebaixar para 7.0.1
não é uma opção para nós porque precisamos de TS 3.5.2
(com TS 3.4.5
, 7.0.1
funciona) e isso gera o seguinte erro com 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>>'.
Então, alguma .. solução alternativa? Não sou um especialista no assunto, então não consigo entender o que preciso fazer com isso.
@tsakalidiskostas
Bem, decidimos que enviaremos uma versão modificada dos tipos react-redux
para nosso repo. (Depois de decidir não usar o pacote de patch . O que pode ser uma boa solução temporária se você não se importar com a solução alternativa do fio.)
Onde simplesmente mudamos a seguinte linha:
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {
para:
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {
Como não usamos estática, isso não nos prejudica, mas isso pode não ser uma solução aceitável para todos.
Legal! Eu fui com a sugestão de @alessioprestileo de mudar
import hoistNonReactStatics = require('hoist-non-react-statics');
para
import { NonReactStatics } from '../hoist-non-react-statics';
e mudando a chamada para
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {
e funcionou para mim também, na verdade estava prestes a atualizar quando vi sua resposta: D
Então, você publicaria uma nova versão em npm com correções? :)
Podemos simplesmente fazer com que os mantenedores do hoist-non-react-statics verifiquem as digitações de volta em seu repositório?
Então ... isso está acontecendo ou devo prosseguir com uma mudança de garfo nisso?
Olá. Também atualizamos para a versão 7.1.1
mais recente de @types/react-redux
com react-redux
: 7.1.0
e estamos vendo este erro com npm. Estou confuso, pois todos os tíquetes referentes a isso estão fechados.
Um downgrade para 7.0.1
corrige este problema, mas causa um novo problema se usarmos a última versão do 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'.
tornando-se uma solução alternativa meio triste.
A versão mais recente (ou seja, 7.1.1
) de @types/react-redux
não usa Shared<TInjectedProps, GetProps<C>>
como restrição (precisamente por causa da correção no TS que apontou que a restrição estava incorreta) - você tem outra biblioteca que está forçando uma inclusão aninhada de uma versão mais antiga dos tipos react-redux
, eu acho.
Então, eu tenho a solução alternativa. É denominado "pacote de patch".
Se você não usou o pacote de patch antes, é realmente muito fácil! Basta adicioná-lo à sua configuração, instalá-lo por npm e, em seguida, clicar em um comando de pacote de patch no módulo alterado que você corrigiu e está funcionando e pronto. Agora você tem alguns módulos que residem sob o pacote de patch que contém apenas os arquivos alterados do módulo que você estava corrigindo, nada muito sofisticado ou muito grande etc. O erro foi corrigido, a dependência não foi perdida, então quando / se eles corrigirem você pode facilmente excluir um ou dois arquivos e está tudo bem
Posso confirmar que a instalação de hoist-non-react-statics
resolve este erro para react-redux
7.1.0 e @types/react-redux
7.1.1. Também estou usando o Typescript 3.4.3.
Não sei por que esse problema foi encerrado, no entanto. Existe uma solução mais razoável, sem ter que corrigir o pacote ou substituir a árvore de resoluções de módulo?
Estou tendo o mesmo problema que @jalMogo
Ainda estou vendo esse problema.
@jalMogo , tanto quanto eu entendo, este não é um problema com redux, mas com hoist-non-react-statics e é por isso que o problema está encerrado aqui. Existem várias soluções alternativas no segmento, mas seria melhor se alguém habilidoso o suficiente desse ao pessoal do guincho uma correção.
Não concordo que seja um problema com a estática sem reação do guincho. É um problema com a descrição de redux, na medida em que acaba olhando para a versão mais antiga e errada de hoist-non-react-statics se existir na árvore node_modules, o que acontece quando alguma outra coisa como o roteador está instalado . A dependência precisa ser descrita apropriadamente e a nova versão instalada apropriadamente na árvore node_modules.
Isso ainda é um problema.
+1
Ainda estou tendo esse problema e o lint diz que há um erro no código. Alguém ainda está trabalhando nisso ou é considerado encerrado? Tenho todas as versões mais recentes instaladas e ainda consigo:
O namespace '"/ home / myhome / Projects / node_modules / hoist-non-react-statics / index"' não tem membro exportado 'NonReactStatics'.ts (2694)
Este é definitivamente um problema da parte deles. Solução alternativa: @types/hoist-non-react-statics
deve ser listado como uma dependência em SEU projeto para que funcione
Mas eu tenho isso e ainda consigo o problema:
"dependências": {
...
"@ types / hoist-non-react-statics": "^ 3.3.1",
está no meu package.json
Foi mal. Você precisa de hoist-non-react-statics
De: Robert Rehammar [email protected]
Enviado: domingo, 20 de outubro de 2019 1:50:51
Para: DefinitelyTyped / DefinitelyTyped [email protected]
Cc: wolfy1339 [email protected] ; Mencione a mençã[email protected]
Assunto: Re: [DefinitelyTyped / DefinitelyTyped] [@ types / react-redux] 'hoist-non-react-statics' não exportou o membro 'NonReactStatics' (# 33690)
Mas eu tenho isso e ainda consigo o problema:
"dependências": {
...
"@ types / hoist-non-react-statics": "^ 3.3.1",
está no meu package.json
-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, vê-lo no GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690?email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 , ou unsubscribe https://github.com/notifications/unsubscribe- auth / ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ .
Eu tenho "hoist-non-react-statics": "^3.3.0"
em minhas dependências e "@types/hoist-non-react-statics": "^3.3.1"
em minhas devDependencies e eu mesmo ainda tenho o problema. Eu confirmei que nenhuma outra biblioteca está puxando versões mais antigas desses também.
Eu também tentei sem instalar explicitamente "@types/hoist-non-react-statics"
(porque pelo que entendi, o pacote principal já deveria ter tipificações incluídas), mas com o mesmo resultado.
Qualquer pessoa que enfrente este problema deve fornecer uma reprodução executável, caso contrário, não podemos oferecer qualquer ajuda.
Sinto muito, o projeto que estou experimentando não é de código aberto e não tenho tempo para criar um projeto separado para exibi-lo. O que eu percebi, entretanto, é que o projeto não tinha problemas até que eu habilitei allowJs: true
em tsconfig.json
. Sem essa configuração, tudo funcionou bem ainda. Espero que ajude.
adicionar o 'hoist-non-react-statics' parece ter corrigido isso aqui.
O repro é apenas instalar @ types / react-redux e então importar qualquer coisa no react-redux em um arquivo tsx.
Uma maneira de corrigir esse problema é adicionar "skipLibCheck": true em tsconfig.json. Não é a melhor solução, mas como alternativa, pode ser usada.
Acho que isso acontece porque o texto digitado resolve as coisas nesta ordem:
package/package.json[types]
@types/package
package
(tudo exceto o campo types
)Por que ele faz isso é um mistério para mim, mas está documentado aqui: https://www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules
Por exemplo, se você tiver a seguinte estrutura de diretório:
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
Então o texto digitado fará o seguinte:
node_modules/@types/react-redux/node_modules/hoist-non-react-statics
porque a versão atual não inclui tiposnode_modules/hoist-non-react-statics
(a versão antiga) porque seu package.json
tem um campo types
portanto, como outros mencionaram, você pode corrigir o problema adicionando uma dependência em seu projeto no último hoist-non-react-statics
, porque isso não tem um campo types
em package.json
então faz o passo 2 falhar.
Ironicamente, você também pode corrigir isso adicionando uma dependência em seu projeto em um hoist-non-react-statics
mais antigo, por exemplo, 3.0.0. Isso funciona porque força a instalação da versão correta (3.3.0) em node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics
, onde foi resolvido anteriormente: confundido:
Portanto, tenho duas perguntas:
types
especialmente dessa maneira, e ele vem antes ou depois de @types
pacotes dependendo se o campo types
é usado ou não?hoist-non-react-statics
uma vez tinham tipos integrados, por que eles foram renegados para cá? Isso não seria um problema se os tipos fossem integrados ao pacote. Não consigo ver como o yarn / NPM pode lidar adequadamente com pacotes separados para códigos e tipos, visto que eles não sabem como os dois estão conectados.Este problema parece ter ressurgido com as versões mais recentes do pacote, ou seja:
[email protected]
@types/[email protected]
Consegui resolver isso incluindo manualmente os seguintes pacotes em meu package.json
:
[email protected]
@types/[email protected]
Porque os pacotes de hoist-non-react-statics
após minha npm install
havia duplicatas desses pacotes em minha pasta node_modules
. Executar npm dedupe
esclareceu isso.
Espero que isso ajude todos os que vierem!
Eu também tive esse problema - louvado seja a solução de @DannyDelott !
Eu também tive esse problema - louvado seja a solução de @DannyDelott !
A solução mais rápida por enquanto sem poluir seu package.json
com dependências de que você não precisa diretamente é remover @types/react-redux
npm remove @types/react-redux
Assim que verificarmos que o problema foi resolvido, podemos colocá-lo de volta
O problema ainda está acontecendo e a única maneira de corrigir isso é adicionar as dependências mencionadas ao seu projeto. No entanto, isso não é o ideal, então esperamos consertá-lo em breve!
Ainda percebendo esse problema.
Para qualquer pessoa disposta a continuar desenvolvendo enquanto uma correção estável estiver ativa, você pode usar o typedef abaixo:
// [your-src-folder]/types/hoist-non-react-statics.d.ts
declare module 'hoist-non-react-statics' {
type NonReactStatics<T> = any;
export { NonReactStatics }
}
Esta não é a solução ideal, mas pelo menos é útil para evitar erros de compilação com TS
Comentários muito úteis
Posso estar errado, mas acho que o problema talvez seja mais simples,
deveria estar
fazer o downgrade para @ types / react-redux 7.0.1 é uma solução rápida até que isso seja corrigido.