Joy*_*Joy 39 reactjs webpack webpack-2
我正在尝试从react-materialize导入组件 -
import {Navbar, NavItem} from 'react-materialize';
Run Code Online (Sandbox Code Playgroud)
但是当webpack正在编译时,.tsx它会引发上述错误 -
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.
Run Code Online (Sandbox Code Playgroud)
任何解决方案.我不确定如何解决此import语句ts-loader与webpack一起使用.
该index.js反应-兑现长相很喜欢这一点.但是如何在我自己的文件中为模块导入解决这个问题..
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
Mat*_*vic 50
如果@types/<package>您正在使用的模块没有,您可以通过在// @ts-ignore上面添加评论来轻松规避该问题,即
// @ts-ignore
import { Navbar, NavItem } from 'react-materialize';
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建缺少的@types/<package>以下内容:
Joy*_*Joy 37
对于那些想知道我是如何克服这一点的人.我做了一些黑客的东西.
在我的项目中,我创建了一个名为的文件夹@Types,并将其添加到tsconfig.json中,以便从中查找所有必需的类型.所以看起来有点像这样 -
"typeRoots": [
"../node_modules/@types",
"../@types"
]
Run Code Online (Sandbox Code Playgroud)
在里面我创建了一个名为的文件alltypes.d.ts.从中查找未知类型.所以对我来说这些都是未知的类型,我在那里添加了它.
declare module 'react-materialize';
declare module 'react-router';
declare module 'flux';
Run Code Online (Sandbox Code Playgroud)
所以现在打字稿并没有抱怨找不到的类型.:)现在胜利局面:)
Ogg*_*las 31
我有一个类似的错误,但对我来说它是react-router.通过安装类型来解决它.
npm install --save @types/react-router
Run Code Online (Sandbox Code Playgroud)
错误:
(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.
Run Code Online (Sandbox Code Playgroud)
如果您想在网站范围内禁用它,您可以改为编辑tsconfig.json并设置noImplicitAny为false.
sin*_*ina 28
确保在执行以下操作后停止您的本地反应服务器并重新启动它:
1-.d.ts手动创建 文件,您只需要执行以下操作:
2 - 输入 src folder
3 - 创建global.d.ts文件
4 - 在其中声明模块,如:
declare module 'module-name';
Run Code Online (Sandbox Code Playgroud)
我之前在这里回答过,很好
小智 27
就我而言,我的反应有问题,所以我开始做:
npm install @types/react
然后到
npm install @types/react-dom
这对我有用
Moh*_*nji 21
只需为反应安装必要的类型,它应该可以解决错误。
如果您使用纱线:
yarn add @types/react @types/react-dom @types/react-router-dom -D
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 npm:
npm install @types/react @types/react-dom @types/react-router-dom --save-dev
Run Code Online (Sandbox Code Playgroud)
Jac*_*bec 16
我在react-redux类型上遇到了同样的问题。最简单的解决方案是添加到tsconfig.json:
"noImplicitAny": false
Run Code Online (Sandbox Code Playgroud)
{
"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"]
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我有同样的问题,但不一定与打字稿有关,所以我在这些不同的选项上有点挣扎。我正在使用一个特定的模块制作一个非常基本的 create-react-appreact-portal-tooltip,得到类似的错误:
找不到模块“react-portal-tooltip”的声明文件。'/node_modules/react-portal-tooltip/lib/index.js' 隐式具有 'any' 类型。尝试
npm install @types/react-portal-tooltip它是否存在或添加一个包含declare module 'react-portal-tooltip';ts(7016)的新声明 (.d.ts) 文件
我首先尝试了很多步骤 - 添加各种.d.ts文件,各种 npm 安装。
但是,最终的工作对我来说是touch src/declare_modules.d.ts
那么src/declare_modules.d.ts:
declare module "react-portal-tooltip";
Run Code Online (Sandbox Code Playgroud)
并在src/App.js:
import ToolTip from 'react-portal-tooltip';
// import './declare_modules.d.ts'
Run Code Online (Sandbox Code Playgroud)
我在不同的位置使用这个通用的“声明模块”策略(我是一个初学者)有点挣扎,所以我认为这将适用于不同的选项,但我包含了对我有用的路径。
我最初认为import './declare_modules.d.ts'是必要的。虽然现在好像不是!但我包括了这个步骤,以防它对某人有帮助。
这是我的第一个 stackoverflow 答案,所以我为这里分散的过程道歉,希望它仍然有帮助!:)
小智 7
与 发生同样的错误react-router-dom。
当您处理打字稿项目时,会发生此错误,默认模块不附带打字稿所需的类型。
因此,我在 npmjs.com 上搜索了一个名为“@types/react-router-dom如果它不是您要查找的react-router-dom”的包,然后将其替换react-router-dom为您的非类型化模块。
在 npm 网站上查找最新版本,然后将其添加到您的中,package.json如下所示:
[...]
"dependencies": {
[...]
"@types/react-router-dom": "^5.1.8",
[...]
},
[...]
Run Code Online (Sandbox Code Playgroud)
完成后,运行yarn install
那么它应该摇滚!
一种更 hacky 的方法是在 boot.tsx 中添加以下行
import './path/declare_modules.d.ts';
Run Code Online (Sandbox Code Playgroud)
和
declare module 'react-materialize';
declare module 'react-router';
declare module 'flux';
Run Code Online (Sandbox Code Playgroud)
在declare_modules.d.ts
它有效,但我认为其他解决方案更好。
您需要做的就是运行以下脚本。然后,卸下/重新安装要使用的模块。
npm install --save @types/react-redux
Run Code Online (Sandbox Code Playgroud)
找不到模块“react/jsx-runtime”的声明文件
如果有人遇到此错误,那么您会惊讶地发现在创建 react 应用程序时create-react-app,它只显示@types/react在package.json. 但是,如果您查看node_modules/@types文件夹内部,您将找不到任何react.
解决方案是完全清除node_modules文件夹并重新安装 -npm install或者可以使用单个模块安装 - npm install @types/react。
| 归档时间: |
|
| 查看次数: |
79805 次 |
| 最近记录: |