我想定义一个类型化的数组,为第一个元素指定一个类型,为第二个元素指定另一个类型,依此类推...
实际上,我正在尝试摆脱以下角色:
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
类型的数组,我想要的数组的第一个元素是字符串,第二个元素是布尔值。
任何想法如何改善这一点???
cases
是Array,并且其中的每个元素cases
都是Tuple,因此,如果您这样定义cases
:
const cases: [string, boolean][] = ...
...或者像这样:
const cases: Array<[string, boolean]> = ....
...然后link
将是a string
,result
将是a boolean
,您的测试可以简化为:
describe("'isInternalLink' utility", () => {
test.each(cases)(
"given %p as argument, returns %p", (link, result) => {
expect(isInternalLink(link)).toEqual(result)
}
)
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句