运算符“+”不能应用于类型“数字”和数字

运算符 ‘+’ 不能应用于类型 ‘Number’ 和 number

Operator ‘+’ cannot be applied to types ‘Number’ and number

Number当我们使用类型而不是number(lowercase n)时,会出现错误“Operator ‘+’ cannot be applied to types ‘Number’ and ‘number’” 。

要解决该错误,请确保在您的 TypeScript 代码中使用number小写的类型n

operator plus 不能应用于类型 number

下面是错误如何发生的示例。

索引.ts
const num: Number = 100; // ⛔️ Error: Operator '+' cannot be applied // to types 'Number' and 'number'.ts(2365) console.log(num + 100);

我们使用了Number非原始对象类型来对num变量进行类型化,这导致了错误。

我们不能使用加法运算符 (+) 将非原始对象类型添加到 type 的值number

number在 TypeScript 中输入数字时始终使用类型

要解决这个问题,请number在 TypeScript 中键入数字时始终使用类型。

索引.ts
const num: number = 100; console.log(num + 100); // 👉️ 200

示例中的类型可以根据提供的值进行推断,因此我们甚至不必设置它。

索引.ts
// 👇️ const num: 100 const num = 100; console.log(num + 100); // 👉️ 200


我们使用了解决错误的
原始
数字类型。

将对象类型转换为原始类型

如果您无权访问使用该Number对象类型的代码,请将对象类型传递number给函数,从而将其转换为基本类型Number()

索引.ts
const num = 100 as Number; console.log(Number(num) + 100); // 👉️ 200

您可能还会在网上看到使用一元加号 (+) 运算符将值转换为number.

索引.ts
const num = 100 as Number; console.log(+num + 100);

number错误是由于 primitive ,stringbooleantypes 与非 primitive Number, String,
Boolean, Object, 等不同造成的。

非基本类型是对象,在 TypeScript 中键入值时不应使用。

TypeScript
最佳实践文档警告

不要在 TypeScript 代码中键入值时使用
NumberStringBoolean或非原始对象。SymbolObject

相反,您应该使用numberstringbooleansymbol类型
Record

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: