Typescript 元组错误:目标需要 3 个元素,但源可能更少

Tim*_*hoo 9 typescript

我有简单的 TS 元组

const argTuple: {key1: string, key2: string, key3:string}[] = [
                {key: "key", key2: "key1", key3: "3"},
                {key: "key", key2: "key2", key3: "3"}
            ]

const arg:[string, string, string] = Object.values(argTuple)
Run Code Online (Sandbox Code Playgroud)

arg出现错误:Target requires 3 element(s) but source may have fewer.ts(2322)我不明白为什么元组在 TS 中可以有更少的元素。

Dmi*_*sky 27

看起来您对这里的语法感到困惑。

\n

以下表示“恰好包含三个元素的数组string(是的key1key2、 和key3部分只是标签,它们与键入信息完全无关):

\n
[key1: string, key2: string, key3:string]\n
Run Code Online (Sandbox Code Playgroud)\n

您可能需要一个带有属性的对象数组key1key2key3,即:

\n
{ key1: string, key2: string, key3:string }[]\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa6 或(等效):

\n
Array<{ key1: string, key2: string, key3:string }>\n
Run Code Online (Sandbox Code Playgroud)\n