当前位置:  开发笔记 > 编程语言 > 正文

如何修复"TS2349:无法调用类型缺少调用签名的表达式"

如何解决《如何修复"TS2349:无法调用类型缺少调用签名的表达式"》经验,为你挑选了1个好方法。

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

我究竟做错了什么?



1> C Snover..:

您尝试使用的模块是ES6模块,因此您必须使用ES6语法导入它:

import createBrowserHistory from 'history/lib/createBrowserHistory';

或者,您可以使用旧import =语法并访问default导出对象的属性,而不是默认导出(但您不应该使用ES6导入!).

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有