ope*_*sas 6 arrays casting typescript jestjs
我想定义一个类型化数组,指定第一个元素的类型,第二个元素的另一种类型,依此类推......
事实上,我正在尝试摆脱以下强制转换:
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
)
}
)
})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,其中的每个元素cases都是一个数组,其中第一个元素是字符串,第二个元素是布尔值......
需要明确的是,我不需要一个string | boolean类型的数组,我想要一个第一个元素是字符串、第二个元素是布尔值的数组。
知道如何改进吗???
cases是一个Array,其中的每个元素cases都是一个Tuple,所以如果你cases这样定义:
const cases: [string, boolean][] = ...
Run Code Online (Sandbox Code Playgroud)
...或者像这样:
const cases: Array<[string, boolean]> = ....
Run Code Online (Sandbox Code Playgroud)
...然后link将是 astring并且result将是 aboolean并且您的测试可以简化为:
describe("'isInternalLink' utility", () => {
test.each(cases)(
"given %p as argument, returns %p", (link, result) => {
expect(isInternalLink(link)).toEqual(result)
}
)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1795 次 |
| 最近记录: |