You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript如何在for..of循环中内联声明并解构元组数组

你可以直接对for...of遍历的测试数组使用类型断言,将类型声明为对应的元组数组,不需要单独提取变量,也不需要在解构左侧加类型注解,就能绕过TS的语法限制。

方法1:显式类型断言

直接给循环内的数组加上[string, string[]][]类型断言:

for (let [input, expected] of [
  ['<h1>test</h1>', ['</h1>']],
  ['<h1><b>test</b></h1>', ['</h1>', '</b>']],
  ['<h1><b>test</b> lol</h1>', ['</h1>']],
] as [string, string[]][]) {
  const result = functionToTest(input);
  for (let i in expected) {
    if (result[i] !== expected[i]) {
      throw Error("test failed")
    }
  }
}

方法2:常量断言(TS 3.4+适用)

如果不需要修改测试数据,可以用as const做常量断言,TS会自动推断出精确的元组类型,不需要手动写类型定义:

for (let [input, expected] of [
  ['<h1>test</h1>', ['</h1>']],
  ['<h1><b>test</b></h1>', ['</h1>', '</b>']],
  ['<h1><b>test</b> lol</h1>', ['</h1>']],
] as const) {
  const result = functionToTest(input);
  for (let i in expected) {
    if (result[i] !== expected[i]) {
      throw Error("test failed")
    }
  }
}

注意:as const推断出的是只读类型,如果后续需要修改测试数组内的值,使用第一种显式声明可变元组数组的写法即可。

内容的提问来源于stack exchange,提问作者Cédric Van Rompay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:06:04