【问题标题】:Flow type and merging json objects流类型和合并 json 对象
【发布时间】:2016-04-27 01:42:20
【问题描述】:

假设以下类型的代码(例如,使用 lodash 或明确地喜欢这里):

function extend(base, overwrite) {
    for (var key in overwrite)
        base[key] = overwrite[key];
    return base;
}

var first = extend({
    a: 1
}, {
    b: 2
});

var second = extend({
    c: 3
}, {
    d: 4
});

console.log(first.a + first.b + second.c + second.d);

我如何向 Flowtype 解释这实际上很好?

【问题讨论】:

  • 您尝试应用的具体限制是什么?这实际上看起来不是非常安全的代码。
  • @PatrickRoberts 这是 javascript。类型安全在这里没有任何关系。
  • @PatrickRoberts - 目标是保持像扩展这样的实用函数尽可能通用,同时使 first 和 second 的类型尽可能强,例如{a: number, b: number} 和 {c: number, d: number}

标签: javascript node.js types flowtype


【解决方案1】:

试着把它放在函数声明的上方:

declare function extend<A, B>(a: A, b: B): A & B

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 2018-09-15
    • 2016-03-16
    • 2015-01-05
    • 2018-06-22
    • 1970-01-01
    相关资源
    最近更新 更多