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);
我想以整数形式获取数组的中间索引,但出于某种原因打字稿不允许我使用 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);