DefinitelyTyped库:
declare module "history/lib/createBrowserHistory"
{
export default function createBrowserHistory(options?: HistoryModule.HistoryOptions): HistoryModule.History
}
在这样使用时给出了标题中的编译错误(尽管在转换为.tsx之前它在普通的旧.jsx中工作):
import React = require('react');
import reactDom = require('react-dom');
import ReactRouter = require('react-router');
import createBrowserHistory = require('history/lib/createBrowserHistory');
import routes = require('app/tools/routes');
export function createReactApp() : void
{
let history = createBrowserHistory(); // <-- error :(
reactDom.render
(
<ReactRouter.Router history={history}>{routes}</ReactRouter.Router>,
document.getElementById('app')
);
}
我做错了什么?
答案 0 :(得分:6)
您尝试使用的模块是ES6模块,因此您必须使用ES6语法导入它:
import createBrowserHistory from 'history/lib/createBrowserHistory';
或者,您可以使用旧版import =
语法并访问导出对象的default
属性,而不是默认导出(但您不应该使用ES6导入!)。
答案 1 :(得分:1)
如果您遇到问题,可能是由于Babel编译的版本与TypeScript导入不兼容。
相反,请尝试像这样导入:
import { createBrowserHistory } from 'history';