Typescript 不允许我使用 parseInt

Typescript not letting me use parseInt

我想以整数形式获取数组的中间索引,但出于某种原因打字稿不允许我使用 parseInt:

const splitHalfs = (numsArray: number[]) => {
  if (numsArray.length === 2) return numsArray;

  const midElement = parseInt(numsArray.length / 2);

  //Rest of the code goes here
};

然而这并没有显示任何错误:

const splitHalfs = (numsArray: number[]) => {
  if (numsArray.length === 2) return numsArray;

  const midElement = numsArray.length / 2;

  //Rest of the code goes here
};

我得到的错误是:

error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.

12   const midElement = parseInt(numsArray.length / 2);
                                 ~~~~~~~~~~~~~~~~~~~~

我认为这是因为通过获取 numsArray 的长度,您实际上是在尝试将一个数字转换为另一个数字,因此您可以将“numsArray.length”返回到一个字符串或只是删除“parseInt”

解决方案一:

查看parseInt函数定义:

parseInt(string: string, radix?: number): number;

这意味着,它需要第一个参数作为 string。所以,第一个解决方案来了:

const midElement = parseInt((numsArray.length / 2).toString());

方案二:

您也可以通过 not using parseInt 实现。您可以像下面这样使用 Math.floor

const midElement = Math.floor(numsArray.length / 2);