【问题标题】:What does the [type] mean in typescript/flow?typescript/flow 中的 [type] 是什么意思?
【发布时间】:2020-04-30 08:37:57
【问题描述】:

我最近偶然发现了我的一个旧代码,我注意到我在那里输入错误。

interface OptionType {
   label: string,
   value: OptionValueType
}

interface Props {
  options: [OptionType] // < this is wrong
}

现在显然,这应该是 OptionType[]Array&lt;OptionType&gt;,但奇怪的是,这里的代码,至少根据 linter () 和编译器都是有效的语法。

那么,[OptionType] 究竟代表什么?

我最好的猜测是数组的索引/元素,类似于解构,但这感觉很奇怪,因为语法中没有原始数组引用

【问题讨论】:

    标签: eslint reactjs typescript types typescript-typings flowtype


    【解决方案1】:

    这是一个元组。它的语法允许你用 exactly n 个元素指定一个数组,并为每个元素指定一个类型:

    const myTuple: [string, number] = ['foo', 5];
    

    【讨论】:

    • 哦,明白了。出于好奇,您是否会说在实际代码中有元组的实际用法?我想不出任何情况,只有在它似乎甚至可以远程应用的情况下,类型断言似乎更加明确,例如。 property1: 'part-time' | 'full-time' | null - 我知道这两个不是一回事,但在实际使用中我想不出每个元素的集合类型的有限数组。我想我能想到的最接近的是用于重复对象类型的某种分组抽象。
    • 当函数返回 x-y 坐标作为 [x, y] 类型为 [number, number] 的元组时,我使用了它。当然,这可以更改为对象 { x: number, y: number },但这是现有代码,重写整个应用程序以使用不同的约定没有任何好处。
    • @Rawrplus 举一个例子,在我过去构建的一个与金融相关的产品中,我决定将数量存储在一个[string, string] 元组中。第一个是数字(编码为字符串),第二个是货币。
    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2020-06-08
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多