Typescript:每个元素具有不同类型的类型数组

openas

我想定义一个类型化的数组,为第一个元素指定一个类型,为第二个元素指定另一个类型,依此类推...

实际上,我正在尝试摆脱以下角色:

const cases = [
  [ 'http://gmail.com', false ],
  [ '/some_page', true ],
  [ 'some_page', false ]
]

describe("'isInternalLink' utility", () => {
  test.each(cases)(
    "given %p as argument, returns %p", (link, result) => {
      expect(
        isInternalLink(<string>link)
      ).toEqual(
        <boolean> result
      )
    }
  )
})

如您所见,每个元素cases都是一个数组,其中一个字符串作为第一个元素,一个布尔作为第二个元素...

需要明确的是,我不需要string | boolean类型的数组,我想要的数组的第一个元素是字符串,第二个元素是布尔值。

任何想法如何改善这一点???

布赖恩·亚当斯

casesArray,并且其中的每个元素cases都是Tuple,因此,如果您这样定义cases

const cases: [string, boolean][] = ...

...或者像这样:

const cases: Array<[string, boolean]> = ....

...然后link将是a stringresult将是a boolean,您的测试可以简化为:

describe("'isInternalLink' utility", () => {
  test.each(cases)(
    "given %p as argument, returns %p", (link, result) => {
      expect(isInternalLink(link)).toEqual(result)
    }
  )
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有不同类型或对象继承的数组

如何使用Go将具有不同类型的一个元素的数组封送为JSON?

TypeScript:如何为具有不同元素类型但没有固定长度的JavaScript数组声明类型?

具有不同类型的可选键和strictNullChecks的Typescript接口类型

具有不同类型的Django ArrayField

TypeScript:具有不同元素类型的concat数组

具有不同类型的copy_if

具有不同类型的模板非类型参数

元素在WSDL中具有不同类型的相同名称

为什么具有不同类型元素的集合不适用于迭代?

如何运作?使用“每个”方法检查数组中相同类型的所有元素

朱莉娅:具有不同类型的数组的数组

当<Array>具有不同类型的结构时,使用TypeScript指定类型

获取具有混合类型的数组的每个索引的元素类型

在C#中反序列化具有不同类型名称的XML元素

具有不同类型元素的数组

如何在Typescript中正确定义具有不同类型的值的对象

Scala:具有相同类的对象具有不同的类型?

为具有不同类型的集合避免原始类型

遍历具有不同类型的列表

具有不同类型但元素名称和i:type属性相同的XMLArray

具有相同类型但名称不同的多个元素?

如何对具有不同类型的RecyclerView元素进行排序?

数组中不同类型的对象并获取每个对象的类型

具有相同类型属性的接口或类型的 Typescript 简写

具有不同类型节点的图

不同类型的数组

每个条目具有不同类型的通用函数字典

TypeScript:具有相同形状的对象的不同类型