javascript - 如何使用单独的声明文件从外部模块声明 React.Component 类型?

标签 javascript reactjs flowtype

假设有一个外部模块导出了一个 React 组件。该模块没有流声明。我想声明它以启用流类型检查。

例如,该模块的定义如下:

import React from 'react'

class External extends React.Component {
  static propTypes = {
    name: React.PropTypes.string.isRequired
  }
  render() {
    return <div></div>
  }
}

如果我写的是我自己(内部模块)Flowtype 将能够检测到缺失 Prop 。但是,由于 External 组件是从外部模块导出的。 Flow 不进行类型检查。所以,我需要创建单独的类型声明 对于该模块。

我尝试过这个:

// ./interfaces/the-external-module.js.flow

declare module "the-external-module" {
  declare export var External: React.Component;
}

当然它不起作用,因为React不在范围内。那么,我怎样才能 在单独的类型声明文件中将 External 声明为 React.Component

最佳答案

根据一些official definitions ,使用 React$Component (在源 here 中定义);例如

declare module "the-external-module" {
  declare export var External: React$Component;
}

关于javascript - 如何使用单独的声明文件从外部模块声明 React.Component 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38932747/

相关文章:

javascript - 如何检测 Angular 路线组件

javascript - 如何在 Vue 3 中为 axios 调用使用去抖功能

javascript - 将 Flow 用于浏览器应用程序

javascript - 只需要快速滚动触发/模拟鼠标+触控板上的滑动手势

javascript\jquery : Event that fires when textbox changes

reactjs - 每次使用相同的给定 Prop React Memo 渲染

javascript - 刷新父组件时,防止子 React 组件中的下拉菜单关闭

reactjs - 在所有路线上 react 加载屏幕?

javascript - Flow : What is the equivalent of PropTypes. 流中的函数?

flowtype - "exponentially large number of cases"最新流中的错误,具有常见的传播模式