无法调用React ExoticComponent

时间:2019-05-02 14:28:30

标签: reactjs typescript

在React.Fragment上潜水时,我在VisualStudio代码上遇到了一条奇怪的Intellisense消息:

  

注意:无法调用异国成分。

在研究的过程中,我发现了与“异国成分”有关的东西,但没有关于其真正含义的提示。

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts

有人可以解释一下为什么会发生这种情况吗?什么是ExoticComponent?

这是一段代码,消息在眨眼间出现:

->withoutOverlapping()

1 个答案:

答案 0 :(得分:0)

使用React.Fragment接口(Source)声明ExoticComponent类型

const Fragment: ExoticComponent<{ children?: ReactNode }>;

来自ExoticComponent type declaration旁边的评论

  

但是,除了假装是普通组件之外,我们没有办法告诉JSX解析器它是JSX元素类型或其道具。

     

我们不只是使用ComponentType或SFC类型,因为您不应该将静态对象附加到该对象,而是附加到原始函数。

ExoticComponent的一种解决方法,用于键入特殊组件(因此名称为“ exotic”),它们的行为不像常规的React.ComponentReact.FunctionComponent,但我们仍然希望TypeScript解释它们作为一种组件。


关于您看到的消息:

  

注意:无法调用异国成分。

这可能是界面或插件故障。您的代码没有错。