如何在打字稿中解构具有不同类型元素的数组
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;
以下代码示例在 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;