在React.Fragment上潜水时,我在VisualStudio代码上遇到了一条奇怪的Intellisense消息:
注意:无法调用异国成分。
在研究的过程中,我发现了与“异国成分”有关的东西,但没有关于其真正含义的提示。
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts
有人可以解释一下为什么会发生这种情况吗?什么是ExoticComponent?
这是一段代码,消息在眨眼间出现:
->withoutOverlapping()
答案 0 :(得分:0)
使用React.Fragment
接口(Source)声明ExoticComponent
类型
const Fragment: ExoticComponent<{ children?: ReactNode }>;
来自ExoticComponent
type declaration旁边的评论
但是,除了假装是普通组件之外,我们没有办法告诉JSX解析器它是JSX元素类型或其道具。
我们不只是使用ComponentType或SFC类型,因为您不应该将静态对象附加到该对象,而是附加到原始函数。
ExoticComponent
的一种解决方法,用于键入特殊组件(因此名称为“ exotic”),它们的行为不像常规的React.Component
或React.FunctionComponent
,但我们仍然希望TypeScript解释它们作为一种组件。
关于您看到的消息:
注意:无法调用异国成分。
这可能是界面或插件故障。您的代码没有错。