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 ({routes} , document.getElementById('app') ); }
我究竟做错了什么?
您尝试使用的模块是ES6模块,因此您必须使用ES6语法导入它:
import createBrowserHistory from 'history/lib/createBrowserHistory';
或者,您可以使用旧import =
语法并访问default
导出对象的属性,而不是默认导出(但您不应该使用ES6导入!).