为什么 VS Code 中的 Flow 会为我的 React 函数提供两种类型定义?

Why does Flow in VS Code give two type definitions for my React function?

我正在使用 Flow 和 React 在 VS Code 中创建一个 Azure 静态应用程序。该应用程序可以运行,但我对函数的类型定义感到困惑。我在一个用 //@flow strict

注释的文件中创建了一个小示例
function WhyMismatch(): React.MixedElement {
  return <h1></h1>
}

请参考this image.代码在UI中产生以下两个类型签名。

注意这两个定义。为什么第一个将 return 类型列为 any?我是否应用了 return 错误的类型或配置错误?

其中之一是 TypeScript 定义,因为 vscode 和 TS 都是由 Microsoft 提供的,它们基本上将 TS intellisense 直接烘焙到应用程序中。您可以在设置中关闭它,但实际上没有必要,您通常可以分辨出哪个是哪个。

在你的情况下,说 function(): any 的是 TS,因为它不理解 React.MixedElement