模块"..."解析为非模块实体,无法使用此结构导入

Rau*_*scu 12 typescript material-ui

我有一个.tsx文件,我试图从material-ui导入一个RaisedButton组件,如下所示:

import * as RaisedButton from 'material-ui/lib/raised-button'
Run Code Online (Sandbox Code Playgroud)

但是,这给了我标题中描述的错误,任何想法我可能做错了什么?

Bla*_*wen 22

这是来自material-ui.d.ts文件.

export import RaisedButton = __MaterialUI.RaisedButton; // require('material-ui/lib/raised-button');
Run Code Online (Sandbox Code Playgroud)

所以你应该像这样导入它.

import RaisedButton = require('material-ui/lib/raised-button');
Run Code Online (Sandbox Code Playgroud)

  • 这可能令人困惑.新的导入语法适用于ES6模块.require()适用于AMD/CommonJS,其中material-ui正在使用export default {}.这个答案可以更好地解释它.http://stackoverflow.com/questions/29596714/new-es6-syntax-for-importing-commonjs-amd-modules-ie-import-foo-require/29598404#29598404 (2认同)