我正在将项目转换为Typescript,并且遇到了问题。我使用第三方库react-async-script-loader,所以我正在为它编写一个类型定义文件。该库导出一个更高阶的组件,但我在类型定义文件中表达它时遇到了麻烦。
这是我现在的文件:
declare module 'react-async-script-loader' {
import { Component } from 'react';
class ElementClass extends Component<any, any> {}
interface ClassDecorator {
(component: ElementClass): ElementClass;
}
function scriptLoader(url: string): ClassDecorator;
export default scriptLoader;
}
我正在调用这样的函数:
import * as scriptLoader from 'react-async-script-loader';
...
export default scriptLoader(url)(MyComponent);
但是,我在export default
语句中收到此错误:
error TS2349: Cannot invoke an expression whose type lacks a call signature.
我无法理解导致这种情况的原因,因为我导出的函数接受一个字符串,并且似乎返回一个带有组件并输出组件的函数。
答案 0 :(得分:2)