流类型和合并 json 个对象

Flow type and merging json objects

假定以下类型的代码(例如,使用 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 解释这实际上没问题?

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

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