Библиотека ОпределенноТипед:

declare module "history/lib/createBrowserHistory" 
{
    export default function createBrowserHistory(options?: HistoryModule.HistoryOptions): HistoryModule.History
}

Выдает ошибку компиляции в заголовке при таком использовании (хотя он работал в обычном старом .jsx до преобразования в .tsx):

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')
    );
}

Что я делаю не так?

4
Richard 23 Дек 2015 в 23:56

2 ответа

Лучший ответ

Модуль, который вы пытаетесь использовать, является модулем ES6, поэтому вы должны импортировать его, используя синтаксис ES6:

import createBrowserHistory from 'history/lib/createBrowserHistory';

В качестве альтернативы вы можете использовать устаревший синтаксис import = и получить доступ к свойству default экспортируемого объекта вместо экспорта по умолчанию (но вы не должны этого делать; используйте импорт ES6!).

7
C Snover 23 Дек 2015 в 22:19

Если у вас возникли проблемы, вероятно, это связано с тем, что эта версия компилируется Babel, что несовместимо с импортом TypeScript.

Вместо этого попробуйте импортировать его так:

import { createBrowserHistory } from 'history';
1
Badacadabra 22 Май 2017 в 17:05