[英]Typescript: Type definitions for Higher Order Components
我正在将一个项目过渡到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.
我不太了解是什么原因造成的,因为我导出的函数需要一个字符串,并且似乎正在返回一个带有组件并输出组件的函数。
scriptLoader
被导出为default
导出,但是您正在使用名称空间导入进行导入。
尝试将其更改为default
导入, 如docs中所示 :
import scriptLoader from "react-async-script-loader";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.