gpt4 book ai didi

typescript [数字,数字]与数字[]

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:00 28 4
gpt4 key购买 nike

谁能帮我理解为什么我在使用以下代码时会出现类型错误:

function sumOfTwoNumbersInArray(a: [number, number]) {
return a[0] + a[1];
}

sumOfTwoNumbersInArray([1, 2]); // Works

let foo = [1, 2];
sumOfTwoNumbersInArray(foo); // Error

错误是:

Argument of type 'number[]' is not assignable to parameter of type '[number, number]'.

Type 'number[]' is missing the following properties from type '[number, number]': 0, 1

最佳答案

sumOfTwoNumbersInArray 中的参数a 是一个元组。它与 number[] 不同。

以下工作正常,因为所有变量都是基本数组

function sumOfTwoNumbersInArray(a: number[]) { // parameter declared as array
return a[0] + a[1];
}

let foo = [1, 2]; // initialization defaults to array

sumOfTwoNumbersInArray(foo); // no error.

正如 Rafael 提到的,将 foo 显式定义为元组也能正常工作。

function sumOfTwoNumbersInArray(a: [number, number]) { // parameter declared as a tuple
return a[0] + a[1];
}

let foo: [number, number] = [1, 2]; // variable explicitely defined as a tuple

sumOfTwoNumbersInArray(foo); // no error.

关于 typescript [数字,数字]与数字[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58161638/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com