无法调用其类型缺少呼叫签名的表达式。

无法调用其类型缺少呼叫签名的表达式。

问题描述:

我用react/lib/update方法与typescript无法调用其类型缺少呼叫签名的表达式。

我写了一个定义文件,就像这样:

declare module 'react/lib/update' { 
    export default function update<S>(value: S, spec: any): S; 
} 

,并使用它像这样:

import * as update from 'react/lib/update';

tsc给我一个错误:

Cannot invoke an expression whose type lacks a call signature. Type 'typeof 'react/lib/update'' has no compatible call signatures.

看起来好像我的定义文件不正确。如何解决这个问题?

既然你对功能update默认的导出,你必须将其导入,如:

import update from 'react/lib/update'; 
+0

呀。这适用于'es6' js,而不是'typescript'。我解决了它。谢谢。这个问题应该关闭。 – novaline

+0

@novaline如果您解决了这个问题,考虑将其添加为答案,以便将来的用户可以从中受益。 – Saravana