gpt4 book ai didi

javascript - 如何根据输入类型定义 flow.js 输出类型

转载 作者:行者123 更新时间:2023-12-03 02:32:15 25 4
gpt4 key购买 nike

我是 flow.js 的新手,我有一个相当简单的问题:假设我有一个函数,将类型 A 或类型 B 作为输入,如果输入是 A,则返回类型 AA,或者如果输入是 B,则返回类型 BB:

type A = {|a: string|}
type B = {|b: string|}
type AA = {|aa: string|}
type BB = {|bb: string|}
const f = (x: A | B, type: string): AA | BB => type === "A" ? {aa: "AA"}: {bb: "BB"}

我的问题是我不能这样做:

const x: A = {a: "x"}
const y: AA = f(x, "A")

y 需要为 AA 类型 | BB

我尝试使用参数化泛型,例如

type C<T> = typeof(T) === "A" ? AA : BB;

但是好像没用

有办法做到这一点吗?

最佳答案

这是您希望对函数进行多个声明的地方。

Here's an example

declare function f(x: A, type: string): AA
declare function f(x: B, type: string): BB

现在,如果您要根据 type 参数进行此返回,则可以根据需要将其指定为文字('A' 等)它也会检查这一点。例如:

declare function f(x: A, type: 'A'): AA

关于javascript - 如何根据输入类型定义 flow.js 输出类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com