gpt4 book ai didi

javascript - 在 Flow 中定义无界元组

转载 作者:行者123 更新时间:2023-11-28 05:40:24 26 4
gpt4 key购买 nike

是否可以定义一个重复 Flow 中最后一项的元组?

示例:

type Operator = '=' | '<' | '>';
type Value = string | number;

// this works...
type Expression = [Operator, Array<Value>];
const expr = ['=', [1, 2, 3]];

// ...but I would like to use it without nested array:
type Expression = [Operator, ...Value]; // this is not valid
const expr = ['=', 1, 2, 3];

Flow 会根据索引对元组中的项目进行类型检查,因此可以这样定义它:

type Expression = [Operator, Value, Value, Value, Value, Value];
const expr = ['=', 1, 2, 3];

但如果数组长于类型定义,它不会对项目进行类型检查。

最佳答案

它还不支持像这样混合元组和列表,但它支持的是“标记联合”,在这种情况下似乎更好! (或者您是否希望即使对于同一运算符,值的数量也是动态的?)

type Value = string | number;
type Expression =
['=', Value, Value, Value]
| ['<', Value, Value]
| ['>', Value]

通过此功能,您可以准确指定每个运算符接受的值数量。

关于javascript - 在 Flow 中定义无界元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964842/

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