gpt4 book ai didi

javascript - 注释可以返回两种不同类型对象的函数的正确方法是什么?

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

我想知道如何注释一个可以返回两个不同对象的函数。例如,许多库将使用类似于以下的模式:

// @flow
type MaybeResult = {| err: string |} | {| favoriteFruit: void |};

const getFavoriteFruitObj = (name): MaybeResult =>
name === 'john' ? ({ favoriteFruit: 'apple' }) : ({ err: 'I only know peter\'s favorite fruit!' });

但是,这会从流程中返回以下错误:

5:   name === 'john' ? ({ favoriteFruit: 'apple' }) : ({ err: 'I only know peter\'s favorite fruit!' });
^ Cannot return `name === 'john' ? {...} : {...}` because string [1] is incompatible with undefined [2] in property `favoriteFruit`.
References:
5: name === 'john' ? ({ favoriteFruit: 'apple' }) : ({ err: 'I only know peter\'s favorite fruit!' });
^ [1]
2: type MaybeResult = {| err: string |} | {| favoriteFruit: void |};
^ [2]

注释的正确方法是什么?

最佳答案

使用|是创建a Union的正确方法,即一种指示可能返回不同类型集的值的方法。

报告错误流是因为 favoriteFruit 已使用 void (undefined) 进行注释,但随后返回一个属性为从函数中输入string

也许应该是 Maybe类型?也许是这样。将其更改为 ?string typechecks正确。

关于javascript - 注释可以返回两种不同类型对象的函数的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49507410/

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