【问题标题】:Encaps string in flow在流中封装字符串
【发布时间】:2017-08-09 15:04:42
【问题描述】:

我创建了这个流程演示 - https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzAEEwBeMACgEMN8BLHAFQE8AHAUwC4wCAnO7AHMAlGQB8YAOQBhAPIBVAHKMAogCUA+pLABqMDXpM27MMGDFaDbCw4AFXuyh0AHu17oseQgCEYVABZkxAAGAEZ+-sEA3EA

我正在使用 React Native 和 Flow。

我的代码是:

const A = (actionType: string) => 'COUNTER_' + actionType // ActionTypePrefixer
const UP = A`UP`;

我的目标是调用带有反引号的函数。Flow 将其突出显示为错误:

有什么办法可以做封装:

[flow] 数组(此类型与预期参数不兼容 字符串类型另见:封装标签)

截图:

【问题讨论】:

    标签: flowtype flow-typed


    【解决方案1】:

    Flow 将此突出显示为错误

    那是因为它是一个错误!模板文字函数的第一个参数是Array<string>,而不是string。由于['foo'].toString() === 'foo',您的代码仍会执行,但在一般情况下它很容易中断。所以你应该改变

    const A = (actionType: string) => 'COUNTER_' + actionType;
    

    const A = (actionType: Array<string>) => 'COUNTER_' + actionType[0];
    

    如果actionType.length &gt; 1,抛出异常也可能是件好事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 2016-07-25
      相关资源
      最近更新 更多