Estou tentando importar componentes do react-materialize como -
import {Navbar, NavItem} from 'react-materialize';
Mas quando o webpack está compilando meu, .tsx
ele lança um erro para o acima como -
ERROR in ./src/common/navbar.tsx
(3,31): error TS7016: Could not find a declaration file for module 'react-materi
alize'. 'D:\Private\Works\Typescript\QuickReact\node_modules\react-materialize\l
ib\index.js' implicitly has an 'any' type.
Qualquer resolução para isso. Não tenho certeza de como resolver esta declaração de importação para trabalhar com um ts-loader
webpack.
O index.js
de reagir-materializar é assim. Mas como resolver isso para a importação do módulo em meus próprios arquivos ..
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
Respostas:
Eu tive um erro semelhante, mas para mim foi
react-router
. Resolvido instalando tipos para ele.Erro:
(6,30): error TS7016: Could not find a declaration file for module 'react-router'. '\node_modules\react-router\index.js' implicitly has an 'any' type.
Se desejar desativá-lo em todo o site, você pode editar
tsconfig.json
e definirnoImplicitAny
comofalse
.fonte
"noImplicitAny": false,
o desabilitou (eu tive esse problema por usar o init reac-native MyProject --template typescript, pelo menos acho que sim) 👍yarn add @types/react-router --dev
Para quem queria saber como eu superei isso. Eu fiz um tipo de hack.
Dentro do meu projeto, criei uma pasta chamada
@types
e adicionei-a a tsconfig.json para encontrar todos os tipos necessários. Então, parece um pouco com isso -"typeRoots": [ "../node_modules/@types", "../@types" ]
E dentro disso criei um arquivo chamado
alltypes.d.ts
. Para encontrar os tipos desconhecidos dele. então para mim esses eram os tipos desconhecidos e eu adicionei lá.declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
Portanto, agora o texto datilografado não reclamava dos tipos que não eram mais encontrados. :) situação ganha-ganha agora :)
fonte
declare
declarações em um arquivo chamadoindex.d.ts
corrigiu para mim. Não precisei tocar em typeRoots.require
para outras coisas, como imagens. Basicamente, ele simplesmente não permite que você userequire
para nada.nvalid module name in augmentation. Module 'some-dumb-lib-with-no-types' resolves to an untyped module at '/path/to/module', which cannot be augmented.
react-countdown-clock
, criei a@types
pasta e executei todas as etapas acima. ainda recebendo o mesmo erro.Eu tive o mesmo problema com os tipos react-redux. A solução mais simples foi adicionar ao tsconfig.json:
"noImplicitAny": false
Exemplo:
{ "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "isolatedModules": true, "jsx": "react", "lib": ["es6"], "moduleResolution": "node", "noEmit": true, "strict": true, "target": "esnext", "noImplicitAny": false, }, "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"] }
fonte
IntelliJ
IDE, mas otypeRoots
método personalizado (que é a resposta aceita) funcionou até noVS Code
IDESe não houver nenhum
@types/<package>
para o módulo que você está usando, você pode facilmente contornar o problema adicionando um// @ts-ignore
comentário acima, ou seja,// @ts-ignore import { Navbar, NavItem } from 'react-materialize';
Alternativamente, você pode criar o
@types/<package>
seguinte:publicação de arquivos de declaração
DefinitelyTyped como posso contribuir
fonte
@types
BTW disponível. Criado um problema no repo ... github.com/geelen/react-snapshot/issues/131No meu caso, tive um problema com o react, então comecei a fazer:
npm install @types/react
e então para o
npm install @types/react-dom
Isso funcionou para mim
fonte
Tudo que você precisa fazer é executar o script abaixo. Em seguida, remova / reinstale o módulo que deseja usar.
fonte
Tive esse problema quando adicionei
react-router-dom
ao novo aplicativo CRA usando o texto digitado. Depois de adicionar@types/react-router
, o problema foi corrigido.fonte
Tive o mesmo problema, mas não necessariamente relacionado à digitação, então me esforcei um pouco com essas diferentes opções. Estou fazendo um aplicativo criar-reagir muito básico usando um módulo específico,
react-portal-tooltip,
obtendo um erro semelhante:Tentei várias etapas primeiro - adicionando várias
.d.ts
arquivos, várias instalações de npm.Mas o que funcionou para mim foi
touch src/declare_modules.d.ts
entãosrc/declare_modules.d.ts
:declare module "react-portal-tooltip";
e em
src/App.js
:import ToolTip from 'react-portal-tooltip'; // import './declare_modules.d.ts'
Lutei um pouco com os diferentes locais para usar essa estratégia geral de 'declarar módulo' (sou muito iniciante), então acho que funcionará com diferentes opções, mas incluí caminhos para o que funcionou.
Eu inicialmente pensei
import './declare_modules.d.ts'
fosse necessário. Embora agora pareça que não é! Mas estou incluindo a etapa caso ajude alguém.Esta é minha primeira resposta stackoverflow, então peço desculpas pelo processo disperso aqui e espero que ainda tenha sido útil! :)
fonte
Além disso, esse erro será corrigido se o pacote que você está tentando usar tiver seu (s) próprio (s) arquivo (s) de tipo e estiver listado no atributo package.json
typings
Igual a:
{ "name": "some-package", "version": "X.Y.Z", "description": "Yada yada yada", "main": "./index.js", "typings": "./index.d.ts", "repository": "https://github.com/yadayada.git", "author": "John Doe", "license": "MIT", "private": true }
fonte
Uma maneira mais hacky é adicionar, por exemplo, em boot.tsx a linha
import './path/declare_modules.d.ts';
com
declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
dentro
declare_modules.d.ts
Ele funciona, mas outras soluções são melhores IMO.
fonte
O que fiz foi executar os seguintes comandos no prompt de comando nodejs enquanto estava no diretório da pasta do projeto:
npm init
npm install -g webpack
npm install --save react react-dom @types/react @types/react-dom
npm install --save-dev typescript awesome-typescript-loader source-map-loader
npm install ajv@^6.0.0
npm i react-html-id
import UniqueId from 'react-html-id';
Eu fiz o acima (embora já tivesse instalado o npm) e funcionou!
fonte
Se alguém estiver tendo esse erro, você ficará surpreso ao saber que, ao criar o app react com
create-react-app
, ele só aparece@types/react
nopackage.json
. Mas se você verificar dentro danode_modules/@types
pasta, você não encontrará nenhuma pasta dereact
.A solução é simplesmente eliminar o
node_modules
pasta completamente e reinstalar -npm install
ou talvez ir com a instalação do módulo individual -npm install @types/react
.fonte
em 2021 para criar
.d.ts
arquivo manualmente, você só precisa fazer o seguinte:1- entrar
src folder
2- criar
global.d.ts
arquivo3-declare módulos nele como:
declare module 'module-name';
Eu respondi aqui antes e foi bom
fonte
No meu caso, o problema era que os tipos não estavam sendo adicionados ao arquivo package.json em devDependencies para corrigi-lo. Executei a
npm install --save-dev @types/react-redux
observação do--save-dev
fonte
tente adicionar ao arquivo tsconfig.json:
"noImplicitAny": false
funcionou para mimfonte
Eu consegui depois de muitos problemas. No app react, haverá um arquivo react-app-env.d.ts na pasta src, basta declarar o módulo lá
/// <reference types="react-scripts" /> declare module 'react-color/lib/components/alpha/AlphaPointer'
fonte
funciona bem
fonte