【问题标题】:flowtype, how to monkey patch in a type safe manner?flowtype,如何以类型安全的方式进行猴子补丁?
【发布时间】:2021-02-04 12:31:46
【问题描述】:

我在我的项目中使用 flowtype,为方便起见,我想扩展我正在使用的库的功能,更具体地说 luxon

所以,在 Typescript 中,每当我想扩展库的类型时,我都可以做接口声明,Typescript 负责合并我的类型和库定义的类型,所以它专门处理我的这个用例

但是我在flow 中找不到任何信息来实现相同的目标,到目前为止,唯一的解决方案似乎是采用流类型定义,将其复制到我自己的类型定义中(不想要写在上面,因为每次我通过 CLI 安装类型时,我的更改都会丢失,对吗?)并就地修改它......这充其量是一个糟糕的主意

是否有任何我不知道的机制可以快速扩展 flowtype 中的库定义,而无需对现有类型定义进行硬修补?

【问题讨论】:

    标签: javascript flowtype


    【解决方案1】:

    Flow 是正确的,因为您不应该为内置类分配额外的功能。但是,如果您真的想要,您可以关闭每行带有抑制错误的流量错误。 https://flow.org/en/docs/errors/

    【讨论】:

    • 嗯,对不起,我应该更明确一点,我写的问题真的很快,我知道流程是正确的,问题是,我怎样才能将我自己的定义添加到模块类型中(来自流程-typed),在Typescript中可以做接口声明,typescript会自动合并类型,Flow上有没有类似的机制?
    • 我认为与github.com/flow-typed/flow-typed/issues/948 类似的问题目前还没有很好的解决方案。
    【解决方案2】:

    我完成这项工作的唯一方法是将流类型定义移动到我的自定义定义中并在那里手动添加类型。

    在撰写本文时,无法合并/猴子补丁流类型。

    帮自己一个忙,使用 TypeScript。

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 2016-08-25
      • 2011-04-15
      • 2011-10-06
      • 2020-05-24
      • 1970-01-01
      • 2019-08-06
      • 2011-04-19
      相关资源
      最近更新 更多