如何在Flow.js中定义列表选择的类型?

时间:2018-07-16 09:03:41

标签: javascript flowtype

说我有一个函数getSingle(),它接受​​像这样的对象数组:

[{
  value: 'm',
  name: 'Male',
}, {
  value: 'f',
  name: 'Female',
}]

在执行选择之后,在这种情况下,它仅返回所选对象的value(即mf)。

我有一个定义为Sex的枚举类型'm' | 'f'

因此,当给定输入值时,我希望getSingle返回类型SexgetSingle的签名是什么?

getSingle(choices: Array<{
  value: string,
  name: string,
}>): ?

1 个答案:

答案 0 :(得分:0)

看起来您将需要在此处使用通用类型-> https://flow.org/en/docs/types/generics/

因此您的泛型类型的案例将是:

getSingle<T>(choices: Array<{
  value: T,
  name: string,
}>): T  

还可以指定泛型应为哪种类型,如下所示:

type Sex = 'm'| 'f';

getSingle<T: Sex>(choices: Array<{
  value: T,
  name: string,
}>): T 

在此详细了解此案-> https://flow.org/en/docs/types/generics/#toc-adding-types-to-generics