如何在打字稿中解构具有不同类型元素的数组

How to destructure an array with elements of different types in typescript

以下代码示例在 javascript 中运行良好:

 const f = ()=> { return[true,"text",11]; }
 const [active,status,numberEleven] = f();
 const twelve = numberEleven + 1;

但是,const twelve = numberEleven + 1; 会在打字稿中引发错误,因为 numberEleven 可能是字符串、布尔值或数字:
我尝试更改函数 return types:

const f = ()=> {
  const res: [boolean, string, number] = [true, warning, score];
  return res;
}

但是没有用。然后我尝试像这样更改解构数组的类型:

 const [active,status,numberEleven]: [boolean, string, number] = f();

但是这种方法导致了以下错误:

Type '(string | number | boolean)[]' is not assignable to type '[boolean, string, number]'.
  Target requires 3 element(s) but source may have fewer.

那么,在打字稿中解构具有不同类型元素的数组的最佳方法是什么?
谢谢!

确实,第二个选项有效。我分享的错误是由另一段代码引起的。 谢谢德拉戈米尔! <3

这可以使用 as const 来实现。

const f = () => {
  return [true, "text", 11] as const;
}

const [active,status,numberEleven] = f();
const twelve = numberEleven + 1;