Javascript 流:条件函数响应类型

Javascript 流:条件函数响应类型,javascript,flowtype,Javascript,Flowtype,在流类型检查器中,如何基于参数对象属性定义函数响应类型。以下是一个例子: function test(argument) { if (argument.responseType === "string") { return "Some string value" } return { some: { json: "object" } }; } 是否可以将流类型添加到此代码中 我知道可以写: declare export function test(argument: { r

在流类型检查器中,如何基于参数对象属性定义函数响应类型。以下是一个例子:

function test(argument) {
  if (argument.responseType === "string") {
    return "Some string value"
  }
  return { some: { json: "object" } };
}
是否可以将流类型添加到此代码中

我知道可以写:

declare export function test(argument: { responseType: string}): string | { some: { json: string } };

但这还不够。我不想得到答复。它必须完全是基于提供的参数的字符串或对象。

流通过提供给相同的函数来允许函数重载。与next一起工作应该是:

declare function test(argument: {responseType: 'string'}): string;
declare function test(argument: {}): {some: {json: string}};

下面是一个流程尝试

@jmarceli感谢您修复语法问题/添加示例