typescript - 为什么 TypeScript 中的加法很奇怪?

我不知道为什么在 TypeScript 中添加 using 参数很奇怪。

const getDir = (lastIndex: number) => {
// my other code
console.log(lastIndex + 10) // result is 1010
}

getDir(10);

结果显示 1010 而不是 20。

有人知道我做错了什么吗?

回答1

在 TypeScript 中指定 type 不会处理转换。你必须自己做。

在您的示例中,传递给 getDir 函数的参数是字符串而不是数字。

您在答案中发布的确切代码可以满足您的要求(生成 20)。您可以查看https://www.typescriptlang.org/play?#code/MYewdgzgLgBA5gUygEQJYCcYF4YAoA2AhtAJJgAmCAHgFwxgCuAtgEYLoCU2AfDAN4AoAPRCYTAJ4wQUABbsYoSgNCQQ%20BADp8IOAWJQylKjADUMAIwAGLiJjoEEBvlioIFy1YEBfAQMQoMXCsOAG4gA

如果您不处理转换,javascript 中的 string + string 将是连接而不是添加。

在 JavaScript 中有多种方法可以将字符串转换为数字。最简单的方法是在您的号码前面加上一个 +。 (+'10' + 10)

例子:

console.log('Should be 20: ', 10 + 10)
console.log('Should be 1010: ', '10' + 10)
console.log('Should be 20: ', +'10' + 10)

相似文章

最新文章