运算符 ‘+’ 不能应用于类型 ‘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
。
下面是错误如何发生的示例。
索引.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 ,string
和boolean
types 与非 primitive Number
, String
,
Boolean
, Object
, 等不同造成的。
非基本类型是对象,在 TypeScript 中键入值时不应使用。
TypeScript
最佳实践文档警告
不要在 TypeScript 代码中键入值时使用Number
、String
、Boolean
或非原始对象。Symbol
Object
相反,您应该使用number
、string
、boolean
和symbol
类型
Record
。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: