找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?
Posted
技术标签:
【中文标题】找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?【英文标题】:Could not find a declaration file for module 'material-ui/styles/MuiThemeProvider'? 【发布时间】:2018-02-19 11:00:17 【问题描述】:我正在尝试使用从 npm 安装的 react material-ui 主题,当我包含“从“material-ui/styles/MuiThemeProvider”导入 MuiThemeProvider;”时出现以下错误在 boot-client.tsx 中:
TS7016:找不到模块的声明文件 'material-ui/styles/MuiThemeProvider'。 'W:/web/WebFront/node_modules/material-ui/styles/MuiThemeProvider.js' 隐含地具有“任何”类型。尝试
npm install @types/material-ui/styles/MuiThemeProvider
(如果存在)或添加新的 包含declare module 'material-ui/styles/MuiThemeProvider';
的声明(.d.ts)文件
我尝试了这两种建议都无济于事,包括运行命令:npm install -D @types/material-ui。
我在 node_modules 中的 @types 文件夹存在相关类型。
这是我尝试使用的代码:
import './css/site.css';
import 'bootstrap';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import AppContainer from 'react-hot-loader';
import Provider from 'react-redux';
import ConnectedRouter from 'react-router-redux';
import createBrowserHistory from 'history';
import configureStore from './configureStore';
import ApplicationState from './store';
import * as RoutesModule from './routes';
let routes = RoutesModule.routes;
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
// Create browser history to use in the Redux store
const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;
const history = createBrowserHistory( basename: baseUrl );
// Get the application-wide store instance, prepopulating with state from the server where available.
const initialState = (window as any).initialReduxState as ApplicationState;
const store = configureStore(history, initialState);
function renderApp()
// This code starts up the React app when it runs in a browser. It sets up the routing configuration
// and injects the app into a DOM element.
ReactDOM.render(
, document.getElementById('react-app') );
renderApp();
// Allow Hot Module Replacement
if (module.hot)
module.hot.accept('./routes', () =>
routes = require<typeof RoutesModule>('./routes').routes;
renderApp();
);
【问题讨论】:
请在您尝试设置的应用程序中提供一些代码 sn-psMuiThemeProvider
完成,还添加了更多细节 :)
只导入就会报错吗?
我引用的第一个错误是在浏览器中,第二个是在导入中。
您正在导入但未使用MuiThemeProvider
。您需要使用 MuiThemeProvider
组件包装您的应用程序
【参考方案1】:
使用从同一路径导入的default
。
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'
【讨论】:
【参考方案2】:好的,我想通了,默认情况下,在“compilerOptions”下的 tsconfig.json 中,visual-studio 的类型设置为 [“webpack-env”],我需要向其中添加“material-ui”或选择性地删除它:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
【讨论】:
你能用代码 sn-p 详细说明一下吗?以上是关于找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?的主要内容,如果未能解决你的问题,请参考以下文章